callbacks.lock()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

callbacks.lock()

分类:Callbacks对象

返回: Callbacks

callbacks.lock()

描述:把某个回调函数锁定在当前状态。

加入于: 1.7
callbacks.lock()

该方法不接受任何参数。

该方法返回它要附加到的Callbacks对象(this)。

如果创建该Callbacks对象时,带了"memory"标志作为它的参数,可以在该回调函数列表被锁定之后添加额外的函数,并再次引发。

示例

使用callbacks.lock()以锁定一个回调函数列表,以避免对该列表的状态作进一步改变。

// 一个示例的记录函数,用来添加到一个回调函数列表中
var foo = function( value ) {
  console.log( "foo:" + value );
};
 
var callbacks = $.Callbacks();
 
// 把记录方法添加到回调函数列表
callbacks.add( foo );
 
// 引发列表中的项目,传入一个参数
callbacks.fire( "hello" );
// 输出"foo: hello"
 
// 锁定回调函数列表
callbacks.lock();
 
// 尝试再次引发该项目
callbacks.fire( "world" );
 
// 因为列表被锁定了,所以没有调用任何项目
// 所以没有记录“world”

使用callbacks.lock()以带“memory”锁定一个回调函数列表,然后恢复使用该列表:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>callbacks.lock demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="log"></div>
 
<script>
// 用来记录结果的函数
var log = function( value ) {
  $( "#log" ).append( "<p>" + value + "</p>" );
};
 
// 两个添加到回调函数列表中的示例函数
var foo = function( value ) {
  log( "foo: " + value );
};
var bar = function( value ) {
  log( "bar: " + value );
};
 
// 带“memory”标志创建callbacks对象
var callbacks = $.Callbacks( "memory" );
 
// 向回调函数列表添加foo记录函数
callbacks.add( foo );
 
// 引发列表中的项目,传入一个参数
callbacks.fire( "hello" );
// 输出"foo: hello"
 
// 锁定架设函数列表
callbacks.lock();
 
// 再次尝试引发该项目
callbacks.fire( "world" );
// 因为列表被锁定了,所以没有调用任何项目
// 所以没有记录“foo: world”
 
// 再次把foo函数添加到回调函数列表中
callbacks.add( foo );
 
// 再次尝试引发它
callbacks.fire( "silentArgument" );
// 输出“foo: hello”因为参数值没有保存在内存中
 
// 把bar函数添加到回调函数列表中
callbacks.add( bar );
 
callbacks.fire( "youHadMeAtHello" );
// 输出“bar: hello”因为列表依然被锁定着
// 而且参数值依然保存在内存中
</script>
 
</body>
</html>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/callbacks.lock.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。