从div中删除类不会停止jquery函数

时间:2011-12-21 01:49:06

标签: jquery

我有一个带有“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代码。如何才能使它不响应该代码?

1 个答案:

答案 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();
});