0

私は以下のコードを持っています:

$("#radar_play").click(function(){
console.log(this);
$(this).unbind('click');
$(this).bind('click');
....
.....
.....

}

次に、<body>タグにこのボタンがあります

<button id="radar_play'">PLAY ANIMATION</button>

私には、クリックイベント(機能します)を削除してから、再度アタッチしているように見えます。

ただし、クリックイベントが再度バインドされることはありません。誰もが理由を知っていますか?

4

2 に答える 2

2

クリック イベントを再バインドする場合は、ハンドラーも指定する必要があります。そうしないと、イベントは処理されません。

 $(this).unbind('click');
    $(this).bind('click', function() {

        // What you want to do

    });

また

$(this).unbind('click').bind('click', function() {

    // What you want to do
});

また、頻繁なバインドとアンバインドはアンチパターンであることに注意してください..可能であれば避ける必要があります.

于 2012-10-12T15:45:04.983 に答える
0

再バインドするときにハンドラーを指定する必要があります。クロージャーに名前を付けて、次のように使用できます。

$("#radar_play").click(function click_handler(){
   //Perform the onclick logic
   $(this).blabla...
   $(this).unbind('click');
   ....
   //now we want to bind again
   $(this).bind('click', click_handler);
});
于 2012-10-12T15:53:24.290 に答える