2011-12-21 13 views
0

私はクラス "item"を持つdivを持っています。 divで.removeClass( 'item')を使用すると、jquery関数が停止することはありません。私はそれがクラスです削除すると、それはまだjqueryのコードに応答(と私は正常に削除しています、私はいくつかのCSSでそれをテスト)divからクラスを削除してもjquery関数は停止しません

$(".item").mouseenter(function() { 
    $(this).find(".clear").show(); 
}); 
$(".clear").click(function() { 
    $(this).closest("div").removeClass('item'); 
}); 

<div class = "item"> 
    //stuff in here 
</div> 

とjQuery:ここに私のコードです。どうすればそのコードに応答しないようにすることができますか?

答えて

3

unbind()イベントハンドラが必要です。

$(this).closest("div").removeClass('item').unbind('mouseenter'); 

使用して、別の方法としては、コンテナ要素への最初のイベント(またはdocument)を結合して、それに取り扱いを委任することができます。このようにして、クラスが削除されると、実際にはクリックに反応しません。 1.7方法1.6および方法

$(document).delegate('.item','mouseenter', function() { 
    $(this).find(".clear").show(); 
}); 
+0

の下を使用して

$(document).on('mouseenter','.item',function() { $(this).find(".clear").show(); }); 

を使用して

は、それはありがとうございまし作品クール! – user1108749

関連する問題