3.7 jQuery的回调支持
从jQuery 1.7
开始,jQuery
提供了回调支持,这使得开发者能以一种更简单、高效的方式管理回调函数。
3.7.1 回调支持的基本用法
如何创建Callbacks对象
jQuery
提供了以下方法创建Callbacks
对象。
方法 |
描述 |
jQuery.Callbacks(flags) |
根据创建的flags 创建并返回Callbacks 对象,Callbacks 对象表示一个回调函数列表。 |
得到回调函数列表之后,接下来就可以利用该回调函数列表来管理回调函数了。
程序示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <!DOCTYPE html> <html>
<head> <meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> 回调支持 </title> </head>
<body> <script type="text/javascript" src="../jquery-3.1.1.js"> </script> <script type="text/javascript"> function fn1(value) { document.writeln("fn1函数输出:" + value + "<br />"); } function fn2(value) { document.writeln("fn2函数输出:" + value + "<br />"); return false; } var callbacks = $.Callbacks(); callbacks.add(fn1); callbacks.fire("疯狂前端开发"); callbacks.add(fn2); document.writeln("<hr/>"); callbacks.fire("~~疯狂Java~~"); callbacks.remove(fn1); document.writeln("<hr/>"); callbacks.fire("fkjava.org"); </script> </body>
</html>
|
该程序中使用$.Callbacks()
方法创建一个Callbacks
对象(回调函数列表),接下来
- 程序既可使用
add()
方法向该Callbacks
对象添加回调函数;
- 也可使用
remove()
方法从Callbacks
对象中删除回调函数;
- 还可使用
fire()
方法触发Callbacks
对象中的所有回调函数。
Callbacks对象方法
从上面的程序可以看出,Callbacks
对象是一种简单有效的回调函数管理方式。Callbacks
对象提供了以下几种方法来管理回调函数。
添加或删除回调函数到Callbacks对象中
方法 |
描述 |
add(callbacks) |
将一个或多个回调函数添加到Callbacks 对象中。callbacks 参数表示将要添加的回调函数或回调函数数组。 |
remove(callbacks) |
从Callbacks 对象中删除一个或多个回调函数。callbacks 参数表示将要被删除的回调函数或回调函数数组。 |
empty() |
清空Callbacks 对象中的所有回调函数。 |
执行Callbacks对象中的所有回调方法
方法 |
描述 |
fire(arguments) |
使用指定参数arguments 激发Callbacks 对象中所有 回调函数。 |
判断方法
方法 |
描述 |
has(callback) |
判断Callbacks 对象中是否包含callback 回调函数。 |
fired() |
判断Callbacks 对象中的回调函数是否被调用了至少一次。 |
locked() |
判断Callbacks 对象是否处于锁定状态。 |
禁用或锁定Callbacks对象
方法 |
描述 |
disable() |
禁用Callbacks 对象。 |
lock() |
将Callbacks 对象锁定在当前状态。 |