2週間前にここで同じ質問をした後、私はついに「その」解決策を見つけました。これが私が自分の質問に答えている理由です。;)
JQUERYでイベントをバインド、バインド解除、および再バインドするにはどうすればよいですか?
そして、これは完璧なソリューションです。(少なくとも私にとっては。)
$(document).on('click', 'a#button', function(){
$(this).after('<span> hello</span>');
$('span').fadeOut(1000);
});
$('a#toggle').toggle(
function(){
$(this).text('rebind');
$('a#button').on('click.disabled', false);
},
function(){
$(this).text('unbind');
$('a#button').off('click.disabled');
}
);
「.on()」はそれを行います。注:1行目で確認できるように、イベントをバインドすることが重要です。.click()または…!では機能しません。
ドキュメントを参照してください!
これを試して実験するためのフィドルです!
楽しみ!
より簡単で短い解決策は、オブジェクトのバインドを解除する場合はオブジェクトにクラスを追加し、このクラスを削除してexを再バインドすることです。
$('#button').click( function(){
if($(this).hasClass('unbinded')) return;
//Do somthing
});
$('#toggle').click(function(){
$('#button').toggleClass('unbinded');
});