Jquery 如何有选择地解除元素上委托事件的绑定?
考虑以下代码:Jquery 如何有选择地解除元素上委托事件的绑定?,jquery,Jquery,考虑以下代码: 孩子1 孩子2 jQuery应该可以 $(".parent2 .child").unbind("mouseover mouseout"); 编辑 由于动态插入了.child,请尝试以下操作: $(".parent2").find(".child").unbind("mouseover mouseout"); 我认为您应该使用该文档,因为它是绑定的,然后找到这些子项并执行off() 我使用修改后的标记进行了测试,假设您没有正确地使用 <div class="pare
孩子1
孩子2
jQuery应该可以
$(".parent2 .child").unbind("mouseover mouseout");
编辑由于动态插入了
.child
,请尝试以下操作:
$(".parent2").find(".child").unbind("mouseover mouseout");
我认为您应该使用该文档,因为它是绑定的,然后找到这些子项并执行off()
我使用修改后的标记进行了测试,假设您没有正确地使用
<div class="parent1">
<div class="child">child1</div>
<div>...
是否动态附加了
.child
?是@Louys。由于输入错误,子项被动态插入到DOM中。你的解决方案差一点。它删除了具有.child类的所有元素的绑定
<div class="parent1">
<div class="child">child1</div>
<div>...
<div class="parent1">
<div class="child">child1</div>
</div>
<div class="parent2">
<div class="child">child2</div>
</div>
$(document).off("mouseover mouseout", ".child").find('.child').filter(function() {
return !$(this).parents(".parent2").length;
}).on("mouseover mouseout", function() {
console.log("new " + $(this).text());
});