gpt4 book ai didi

jquery - $.Callbacks().disable() 与 $.Callbacks().lock()

转载 作者:行者123 更新时间:2023-12-03 22:47:40 25 4
gpt4 key购买 nike

两者的 jQuery 文档基本上说明了相同的事情,所以我想知道两者之间是否有任何重大差异(如果有的话)。谢谢!

最佳答案

这方面的文档实际上非常糟糕,所以这是我在 studying the source code 找到的内容:

<强> lock只会阻止 future fire调用,但不会阻止函数 add编辑。

<小时/>

以下是这些方法的快速概述:

  • empty - 删除迄今为止注册的所有回调。
  • lock - 防止进一步调用fire,但允许添加更多回调。
  • disable - 防止进一步调用 fireadd
<小时/>

为了理解这一切,让我们从 the memory flag 开始解释:

如果回调对象是使用memory标志构造的,它将跟踪最后一次fire调用,并且稍后添加的任何回调将立即被调用。这是an example :

var callbacks = $.Callbacks('memory');

callbacks.add(function(){
console.log('first');
});

callbacks.fire();

callbacks.add(function(){
console.log('second');
});

这也会记录第二,即使它是在fire调用之后添加的。

<小时/>

如果您禁用它,它会完全删除内存。这是another example :

var callbacks = $.Callbacks('memory');

callbacks.add(function(){
console.log('first');
});

callbacks.fire();
callbacks.disable();

callbacks.add(function(){
console.log('second');
});

callbacks.fire();

这只会记录第一个,因为在添加第二个函数之前回调已被禁用。

<小时/>

但是,如果您使用lock来代替,则稍后添加的函数被调用。这是another example :

var callbacks = $.Callbacks('memory');

callbacks.add(function(){
console.log('first');
});

callbacks.fire();
callbacks.lock();

callbacks.add(function(){
console.log('second');
});

callbacks.fire();

这也会记录第二,但只记录一次;由于该对象已被锁定,因此对 fire 的任何进一步调用都将被忽略。

关于jquery - $.Callbacks().disable() 与 $.Callbacks().lock(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com