Javascript Jquery-从元素中删除类后仍处于活动状态
我不知道它是否应该是这样的,我正在做一些根本错误的事情 我有一个带有给定类的Javascript Jquery-从元素中删除类后仍处于活动状态,javascript,jquery,class,function,Javascript,Jquery,Class,Function,我不知道它是否应该是这样的,我正在做一些根本错误的事情 我有一个带有给定类的div,当你点击div时,它会给出一个响应,但我有另一个div,当点击该div时,它会从第一个div中删除该类 但是,当我在删除第一个div类后继续单击它时,我会继续得到一个响应 为什么在我移除该类后,单击会继续响应 HTML Fiddle:事件处理程序绑定到元素,而不是选择器 要删除处理程序,请使用: 早于1.7的jQuery版本使用.unbind而不是.off您必须将事件处理程序委托到DOM树的更高层,或者显式解除
div
,当你点击div
时,它会给出一个响应,但我有另一个div
,当点击该div时,它会从第一个div
中删除该类
但是,当我在删除第一个div
类后继续单击它时,我会继续得到一个响应
为什么在我移除该类后,单击会继续响应
HTML
Fiddle:事件处理程序绑定到元素,而不是选择器 要删除处理程序,请使用:
早于1.7的jQuery版本使用
.unbind
而不是.off
您必须将事件处理程序委托到DOM树的更高层,或者显式解除事件处理程序的绑定。事件绑定到元素后,仅更改类名不会删除事件处理程序
要删除事件处理程序():
要委派事件处理程序():
委托方法工作的原因是jQuery在事件冒泡到所选元素(在本例中是
文档
)后捕获事件。它检查事件目标是否与选择器匹配,如果匹配,则执行事件处理程序。如果您已删除该类,则目标将不再与选择器匹配。@user1689607获得它。。对不起,删除了我的评论。。谢谢
<div class="testing">Testing</div>
<div id="testing_remover">Remove class from testing</div>
$(document).ready(function(){
$('.testing').click(function(){
console.log('testing is active');
});
$('#testing_remover').click(function(){
$('.testing').removeClass('testing');
});
});
$(".testing").off("click");
$('#testing_remover').click(function(){
$('.testing').off('click');
});
$(document).on("click", ".testing", function(){
console.log('testing is active');
});