JQuery回调集合.docx
- 文档编号:24581469
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:19
- 大小:19.42KB
JQuery回调集合.docx
《JQuery回调集合.docx》由会员分享,可在线阅读,更多相关《JQuery回调集合.docx(19页珍藏版)》请在冰豆网上搜索。
JQuery回调集合
1callbacks.add(callbacks)
概述
回调列表中添加一个回调或回调的集合。
参数
callbacksV1.7
一个函数,或者一个函数数组用来添加到回调列表。
.
示例
描述:
使用callbacks.add()添加新的回调到回调列表:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
//anotherfunctiontoalsobeaddedtothelist
varbar=function(value){
console.log('bar:
'+value);
}
varcallbacks=$.Callbacks();
//addthefunction'foo'tothelist
callbacks.add(foo);
//firetheitemsonthelist
callbacks.fire('hello');
//outputs:
'foo:
hello'
//addthefunction'bar'tothelist
callbacks.add(bar);
//firetheitemsonthelistagain
callbacks.fire('world');
//outputs:
//'foo:
world'
//'bar:
world'
2callbacks.disable()
V1.7概述
禁用回调列表中的回调
示例
描述:
使用callbacks.disable()禁用回调列表:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log(value);
}
varcallbacks=$.Callbacks();
//addtheabovefunctiontothelist
callbacks.add(foo);
//firetheitemsonthelist
callbacks.fire('foo');//outputs:
foo
//disablefurthercallsbeingpossible
callbacks.disable();
//attempttofirewith'foobar'asanargument
callbacks.fire('foobar');//foobarisn'toutput
3callbacks.empty()
V1.7概述
从列表中删除所有的回调.
示例
描述:
使用 callbacks.empty() 清空回调列表:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value1,value2){
console.log('foo:
'+value1+','+value2);
}
//anotherfunctiontoalsobeaddedtothelist
varbar=function(value1,value2){
console.log('bar:
'+value1+','+value2);
}
varcallbacks=$.Callbacks();
//addthetwofunctions
callbacks.add(foo);
callbacks.add(bar);
//emptythecallbackslist
callbacks.empty();
//checktoensureallcallbackshavebeenremoved
console.log(callbacks.has(foo));//false
console.log(callbacks.has(bar));//false
4callbacks.fire(arguments)
概述
禁用回调列表中的回调
参数
argumentsV1.7
这个参数或参数列表传回给回调列表。
示例
描述:
使用 callbacks.fire() 用任何已传递的参数调用列表中的回调:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
varcallbacks=$.Callbacks();
//addthefunction'foo'tothelist
callbacks.add(foo);
//firetheitemsonthelist
callbacks.fire('hello');//outputs:
'foo:
hello'
callbacks.fire('world');//outputs:
'foo:
world'
//addanotherfunctiontothelist
varbar=function(value){
console.log('bar:
'+value);
}
//addthisfunctiontothelist
callbacks.add(bar);
//firetheitemsonthelistagain
callbacks.fire('helloagain');
//outputs:
//'foo:
helloagain'
//'bar:
helloagain'
5callbacks.fired()
V1.7概述
用给定的参数调用所有的回调。
示例
描述:
使用callbacks.fired() 确定,如果列表中的回调至少有一次被呼叫
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
varcallbacks=$.Callbacks();
//addthefunction'foo'tothelist
callbacks.add(foo);
//firetheitemsonthelist
callbacks.fire('hello');//outputs:
'foo:
hello'
callbacks.fire('world');//outputs:
'foo:
world'
//testtoestablishifthecallbackshavebeencalled
console.log(callbacks.fired());
6callbacks.fireWith([context][,args])
概述
访问给定的上下文和参数列表中的所有回调
参数
[context][,args]V1.7
context:
该列表中的回调被触发的上下文引用
args:
一个参数或参数列表传回给回调列表。
示例
描述:
使用 callbacks.fireWith() 访问给定的上下文和参数列表中的所有回调。
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varlog=function(value1,value2){
console.log('Received:
'+value1+','+value2);
}
varcallbacks=$.Callbacks();
//addthelogmethodtothecallbackslist
callbacks.add(log);
//firethecallbacksonthelistusingthecontext'window'
//andanargumentsarray
callbacks.fireWith(window,['foo','bar']);
//outputs:
Received:
foo,bar
7callbacks.has(callback)
概述
确定是否提供的回调列表
参数
callbackV1.7
用来搜索的回调。
示例
描述:
用 callbacks.has() 检查是否回调列表中包含一个特定的回调:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value1,value2){
console.log('Received:
'+value1+','+value2);
}
//asecondfunctionwhichwillnotbeaddedtothelist
varbar=function(value1,value2){
console.log('foobar');
}
varcallbacks=$.Callbacks();
//addthelogmethodtothecallbackslist
callbacks.add(foo);
//determinewhichcallbacksareinthelist
console.log(callbacks.has(foo));//true
console.log(callbacks.has(bar));//false
8callbacks.lock()
V1.7概述
锁定在其当前状态的回调列表。
示例
描述:
用 callbacks.lock()锁定一个回调列表,以避免进一步的修改列表状态:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
varcallbacks=$.Callbacks();
//addtheloggingfunctiontothecallbacklist
callbacks.add(foo);
//firetheitemsonthelist,passinganargument
callbacks.fire('hello');
//outputs'foo:
hello'
//lockthecallbackslist
callbacks.lock();
//tryfiringtheitemsagain
callbacks.fire('world');
//asthelistwaslocked,noitems
//werecalledso'world'isn'tlogged
9callbacks.locked()
V1.7概述
确定是否已被锁定的回调列表。
示例
描述:
用 callbacks.locked() 确定是否已被锁定的回调列表。
:
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
varcallbacks=$.Callbacks();
//addtheloggingfunctiontothecallbacklist
callbacks.add(foo);
//firetheitemsonthelist,passinganargument
callbacks.fire('hello');
//outputs'foo:
hello'
//lockthecallbackslist
callbacks.lock();
//testthelock-stateofthelist
console.log(callbacks.locked());//true
10callbacks.remove(callbacks)
概述
删除回调或回调回调列表的集合。
参数
callbacksV1.7
一个函数或函数数组,是从回调列表中删除。
示例
描述:
用callbacks.remove() 删除回调或回调回调列表的集合。
jQuery代码:
//asampleloggingfunctiontobeaddedtoacallbackslist
varfoo=function(value){
console.log('foo:
'+value);
}
varcallbacks=$.Callbacks();
//addthefunction'foo'tothelist
callbacks.add(foo);
//firetheitemsonthelist
callbacks.fire('hello');//outputs:
'foo:
hello'
//remove'foo'fromthecallbacklist
callbacks.remove(foo);
//firetheitemsonthelistagain
callbacks.fire('world');
//nothingoutputas'foo'isnolongerinthelist/code>
11jQuery.callbacks(flags)
概述
一个多用途的回调列表对象,提供了强大的的方式来管理回调函数列表。
$.Callbacks()的内部提供了jQuery的$.ajax() 和 $.Deferred() 基本功能组件。
它可以用来作为类似基础定义的新组件的功能。
$.Callbacks() 支持的方法,包括 callbacks.add(),callbacks.remove(), callbacks.fire() and callbacks.disable().
参数
flagsV1.7
一个用空格标记分隔的标志可选列表,用来改变回调列表中的行为
示例
入门描述:
以下是两个样品的方法命名fn1 and fn2:
jQuery代码:
functionfn1(value){
console.log(value);
}
functionfn2(value){
fn1("fn2says:
"+value);
returnfalse;
}
这些可以添加为回调函数作为一个$.Callbacks的列表,并调用如下:
varcallbacks=$.Callbacks();
callbacks.add(fn1);
callbacks.fire("foo!
");//outputs:
foo!
callbacks.add(fn2);
callbacks.fire("bar!
");//outputs:
bar!
fn2says:
bar!
这样做的结果是,它使构造复杂的回调列表变得简单,输入值可以通过尽可能多的函数根据需要轻松使用。
用于以上的两个具体的方法:
.add() 和 .fire() .add()支持添加新的回调回调列表,而.fire() 提供了一种用于处理在同一列表中的回调方法的途径.
另一种方法由$.Callbacks 的remove(),用于从回调列表中删除一个特定的回调。
下面是.remove()使用的一个例子:
varcallbacks=$.Callbacks();
callbacks.add(fn1);
callbacks.fire("foo!
");//outputs:
foo!
callbacks.add(fn2);
callbacks.fire("bar!
");//outputs:
bar!
fn2says:
bar!
callbacks.remove(fn2);
callbacks.fire("foobar");
//onlyoutputsfoobar,asfn2hasbeenremoved.
支持的Flags描述:
这个flags参数是$.Callbacks()的一个可选参数,结构为一个用空格标记分隔的标志可选列表,用来改变回调列表中的行为(比如.$.Callbacks('uniquestopOnFalse')).
可用的flags:
∙once:
确保这个回调列表只执行一次(像一个递延Deferred).
∙memory:
保持以前的值和将添加到这个列表的后面的最新的值立即执行调用任何回调(像一个递延Deferred).
∙unique:
确保一次只能添加一个回调(所以有没有在列表中的重复).
∙stopOnFalse:
当一个回调返回false时中断调用
默认情况下,回调列表将像事件的回调列表中可以多次触发。
如何在理想情况下应该使用的flags的例子,见下文:
$.Callbacks('once'):
varcallbacks=$.Callbacks("once");
callbacks.add(fn1);
callbacks.fire("foo");
callbacks.add(fn2);
callbacks.fire("bar");
callbacks.remove(fn2);
callbacks.fire("foobar");
/*
output:
foo
*/
$.Callbacks('memory'):
varcallbacks=$.Callbacks("memory");
callbacks.add(fn1);
callbacks.fire("foo");
callbacks.add(fn2);
callbacks.fire("bar");
callbacks.remove(fn2);
callbacks.fire("foobar");
/*
output:
foo
fn2says:
foo
bar
fn2says:
bar
foobar
*/
$.Callbacks('unique'):
varcallbacks=$.Callbacks("unique");
callbacks.add(fn1);
callbacks.fire("foo");
callbacks.add(fn1);//repeataddition
callbacks.add(fn2);
callbacks.fire("bar");
callbacks.remove(fn2);
callbacks.fire("foobar");
/*
output:
foo
bar
fn2says:
bar
foobar
*//code>
$.Callbacks('stopOnFalse'):
functionfn1(value){
console.log(value);
returnfalse;
}
functionfn2(value){
fn1("fn2says:
"+value);
returnfalse;
}
varcallbacks=$.Callbacks("stopOnFalse");
callbacks.add(fn1);
callbacks.fire("foo");
callbacks.add(fn2);
callbacks.fire("bar");
callbacks.remove(fn2);
callbacks.fire("foobar");
/*
output:
foo
bar
foobar
*/
因为$.Callbacks()支持一个列表的flags而不仅仅是一个,设置几个flags,有一个累积效应,类似“&&”。
这意味着它可能结合创建回调名单,unique 和确保如果名单已经触发,将有更多的回调调用最新的触发值 (i.e.$.Callbacks("uniquememory")).
$.Callbacks('uniquememory'):
functionfn1(value){
console.log(value);
returnfalse;
}
functionfn2(value){
fn1("fn2says:
"+value);
returnfalse;
}
varcallbacks=$.Callbacks("uniquememory");
callbacks.add(fn1);
callbacks.fire("foo");
callbacks.add(fn1);//repeataddition
callbacks.add(fn2);
callbacks.fire("bar");
callbacks.add(fn2);
callbacks.fire("baz");
callbacks.remove(fn2);
callbacks.fire("foobar");
/*
output:
foo
fn2says:
foo
bar
fn2says:
bar
baz
fn2sa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JQuery 调集