gpt4 book ai didi

javascript - 使用 .off() 删除多个相同的事件处理程序

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:33 26 4
gpt4 key购买 nike

我分配了两个事件处理程序:

$('#myElement').on('click', '.classA', doSomething);
$('#myElement').on('click', '.classB', doSomethingElse);

我想删除这两个处理程序。我知道我能做到:

$('#myElement')
.off('click', '.classA')
.off('click', '.classB');

我认为这在一行中是可能的,但是这两个都失败了:

$('#myElement').off('click', '.classA, .classB');
$('#myElement').off('click', '.classA .classB');

有没有一种方法可以在一个命令中完成?

最佳答案

查看源代码后,您将在 off 中看到:-

return this.each( function() {
jQuery.event.remove( this, types, fn, selector );
}

这意味着选择器需要与创建时的完全一样。

因此你需要使用:-

$('#myElement').on('click', '.classA', function() { alert('A'); });
$('#myElement').on('click', '.classB', function() { alert('B'); });

$('#myElement').off('click', '.classA').off('click', '.classB');

$('#myElement').on('click', '.classA', function() { alert('A'); });
$('#myElement').on('click', '.classB', function() { alert('B'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="myElement">
<button class="classA">A</button>
<button class="classB">B</button>
</div>

关于javascript - 使用 .off() 删除多个相同的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144265/

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