gpt4 book ai didi

javascript - jQuery off() 和 unbind() 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 01:40:50 27 4
gpt4 key购买 nike

我使用 jQuery .bind().unbind() 来处理滚动时的动画事件。

$(window).bind('scroll', function(){
... code ...
if(code_was_successful){
$(window).unbind(e);
}
});

从 1.7 开始(我使用的是 1.11)我们应该使用 .on().off(),但是 .off( ) 似乎不支持事件处理程序解除绑定(bind)。对于正常的点击事件等,我必须将处理程序保存到一个变量并设置另一个事件处理程序来解除绑定(bind)(这违背了目的),而对于滚动事件,这是不可能的,因为 .off() 需要一个选择器来取消绑定(bind)特定的处理程序,而滚动事件不能有一个。

执行此操作的现代方法是什么?

最佳答案

What's the modern way to do this?

使用命名函数表达式:

$(window).on('scroll', function handler(){
... code ...
if(code_was_successful){
$(window).off('scroll', handler);
}
});

.off() requires a selector to unbind a specific handler

不,它没有。就像 .on 不需要选择器一样。如果您想取消绑定(bind)委托(delegate)的事件处理程序,则只需要选择器。

正如您在 documentation of .off 中所读到的那样关于选择器参数:

A selector which should match the one originally passed to .on() when attaching event handlers.

所以如果你没有在 .on 中使用一个,你就不会在 .off 中使用一个。

关于javascript - jQuery off() 和 unbind() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961409/

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