このスレッドに従って、ボタンのクリックを無効/有効にしています .jQueryでイベントハンドラーを削除する最良の方法?
その考えは、 live() メソッドを使用してイベントを有効/無効にすることもできるということです。このコードで何が起こるかというと、たとえば .load-item などのタグ要素をクリックすると、無効になっているクラスがこの要素に追加されます。これにより、セレクターが要素と一致しなくなり、「無効な」クラスが削除されて .live() セレクターが再び有効になるまでイベントが発生しなくなります。
以下は私が出てきたもので、最初のボタンのクリックを無効にします。
$('.load-item:not(.disabled)').live('click',function(){
/* add a .current class to the target item */
$(this).parentsUntil('.column-global').addClass('current');
/* add .disabled class to each a tag in the .current element-div */
$('.current a').each(function(index) {
$(this).addClass('disabled');
});
....
});
別のボタンをクリックすると、無効なクラスを削除する別の機能があります。
$('.button-return').click(function(){
...
/* remove all the .disabled class if any exists */
$('.current a').each(function(index) {
$(this).removeClass('disabled');
});
...
/* remove all the .current class if any exists */
$('.item-global').removeClass('current');
return false;
});
無効クラスが削除されることを確認しましたが、最初のボタンはまだ元のクリック可能な状態に戻りません。
私は何かを逃したことがありますか - または live() は実際には一度しか生きませんか live() が私が取り組むべきものではない場合、より良い解決策はありますか??
ありがとう。