我有一个带有“item”类的div。当我在div上使用.removeClass('item')时,它不会阻止它的jquery函数继续运行。这是我的代码:
<div class = "item">
//stuff in here
</div>
和jquery:
$(".item").mouseenter(function() {
$(this).find(".clear").show();
});
$(".clear").click(function() {
$(this).closest("div").removeClass('item');
});
当我删除它的类(我成功删除它,我用一些css测试它)它仍然响应jquery代码。如何才能使它不响应该代码?
答案 0 :(得分:3)
您需要unbind()
事件处理程序。
使用
$(this).closest("div").removeClass('item').unbind('mouseenter');
或者,您可以将初始事件绑定到容器元素(或document
)并将其处理委托给它。这样,一旦删除了类,它确实不会对点击做出反应。
使用1.7方法
$(document).on('mouseenter','.item',function() {
$(this).find(".clear").show();
});
使用1.6及以下方法
$(document).delegate('.item','mouseenter', function() {
$(this).find(".clear").show();
});