资源描述:
《jQueryCallbacks()回调函数队列用法详解_jquery》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、jQuery.Callbacks()回调函数队列用法详解本文实例讲述了jQuery.Callbacks()冋调函数队列用法。分享给人家供人家参考,具体如下:1>jQuery.CallbacksThejQuery.Callbacks()function,introducedinversion1.7,returnsamulti-purposeobjectthatprovidesapowerfulwaytomanagecallbacklists.Ttsupportsadding,removing,firing,anddisab1ingcal1backs.
2、The$.Callbacks()functionisinternallyusedtoprovidethebasefunctionalitybehindthejQuery$.ajax()and$.Deferred()components.Itcanbeusedasasimilarbasetodefinefunctionalityfornewcomponents.接下来,我们分别看下四个标准的控制标志。1.1once创建的callbacks对彖只允许被fireWithO一次[注意:方法fire()是fireWithO的外观模式]。varcallback
3、s二$.Callbacks(/zonce〃);cal1backs,add(function(){console.log(〃fl〃);});callbacks.fire();//输出"fl"callbacks.fire();//什么也不发生,在源码中已经禁用了list.disableO1.2memory在调用add()方法时,如果这时callbacks队列满足fired&&firing=false(真执行完毕)&&memory(需要在构造函数指定),那么acid()进去的回调函数会立即执行,而这个add进去的回调函数调用时的参数存储在memory变量
4、中omemory变量用于存储最后一次调用callbacks.fireWith(...)时所使用的参数[context,arguments]。TftheCal1backsobjectiscreatedwiththe"memory"flagasitsargument,additionalfunctionsmaybeaddedandfiredafterthecallbacklistislocked.$(function($){varcallbacks=$.Callbacks("memory");callbacks,add(function(){conso
5、le.log(〃fl〃);});callbacks.fire();//输出〃fl〃,这时函数列表已经执行完毕!callbacks,add(function(){console,log("f2")汀);//memory作用在这里,没有fire,一样有结果:f2callbacks,fire();//重新触发一次,输岀flf2。firingStart=0//与once一起使用callbacks二$.Callbacks(,zoncememory");cal1backs,add(function(){console.Iog(〃f3〃);});callback
6、s.firc();//输出"f3〃,这时函数列表已经执行完毕!callbacks・add(function(){console.Iog("f4〃);});//没冇fire,一样有结果:f4callbacks.fire();//由于为"once",这里将什么也不执行});1.3unique冋调函数列表中的函数是否可以重复,该特性与add()方法有关,可以避免在回调函数列表屮加入多个相同回调函数。varfl=function(){consolc.1og("fl〃);};varcallbacks=$・Callbacks();callbacks,add(f
7、l);callbacks,add(fl);cal1backs.fire();//输出flfl〃传递参数"unique"callbacks=$・Callbacks(,zunique〃);callbacks,add(fl);//有效callbacks,add(fl);//添加不进去cal1backs.fire();//输出:fl1.4stopOnFalse默认情况下,当执行fireWithO方法时,整个冋调函数列表中的所有函数都会顺序执行,但如果设置了stopOnFalse,那么当某个函数返冋false吋,后边的函数将不再执行。即使设置了memory,
8、再次添加的函数也不会执行了,即一旦某个函数返回feilsc的情况b,会禁用memory功能。但如果没设置”once”,再次