9

クリック イベントをボタン要素にアタッチし、後で削除したいのですが、期待どおりに動作するイベントを取得できませunclick()unbind()。以下のコードでは、ボタンはtan色で、クリック イベントが機能します。

window.onload = init; 
function init() {
    $("#startButton").css('background-color', 'beige').click(process_click);
    $("#startButton").css('background-color', 'tan').unclick();
}

要素からイベントを削除するにはどうすればよいですか?

4

4 に答える 4

19

なんてことはありませんunclick()。それはどこから入手したのですか?

unbind を呼び出すことで、要素から個々のイベント ハンドラーを削除できます。

$("#startButton").unbind("click", process_click);

すべてのハンドラーを削除する場合、または無名関数をハンドラーとして使用した場合は、次の 2 番目の引数を省略できますunbind()

$("#startButton").unbind("click");
于 2008-09-23T13:54:35.407 に答える
6

または、私がしなければならなかったように、クリック機能を使用した直後にバインドを解除したい状況が発生する可能性があります。

$('#selector').click(function(event){
    alert(1);
    $(this).unbind(event);
});
于 2010-09-15T15:09:18.390 に答える
3

アンバインドはあなたの友達です。

$("#startButton").unbind('click')
于 2008-09-23T13:43:15.183 に答える
0

バインドを解除しますか? 後で何度も何度もバインドしたい場合はどうしますか? コードのさまざまなポイントから呼び出されたときに手に負えなくなる傾向があるため、動的イベント処理のバインド/バインド解除は好きではありません。

別のオプションを検討することをお勧めします。

  • ボタンの「無効」プロパティを変更します
  • 「process_click」関数内にロジックを実装します

普遍的な解決策ではなく、私の 2 セントだけです。

于 2008-09-23T15:47:39.770 に答える