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');
});