小さな質問ですが、重要です。
. unbind('click') を実行してから、たとえば button.click(... ?
基本的に、コントロールにイベントが定義されている場合、再度アタッチする前にアタッチを解除する必要がありますか? これは、「bind()」を使用して追加したものに当てはまることを知っています...
これは、「bind()」を使用して追加したものに当てはまることを知っています...
click(func...)
のショートカットですbind('click',...
)。
同じハンドラーをコントロールに割り当てる場合は、再度アタッチする前に削除する必要があります。そうしないと、ハンドラーが複数回実行されます。
とにかくハンドラーへの参照がある場合は、次のことができます。
$element.unbind('click', handler);
これにより、イベント ハンドラーのみが削除さhandler
れ、他のすべてはそのまま残ります。
このコンテキストで興味深いのは、イベントの名前空間です:
複数のイベント ハンドラーを要素にバインドしたいが、同じイベント ハンドラーを再バインドしたくない (元のハンドラーへの参照がない) 場合は、名前空間を使用できます。
$element.bind('click.onlyone', function()...);
$element.unbind('click.onlyone');
//or $element.unbind('.onlyone');
$element.bind('click.onlyone', function()...);
アップデート:
bind
以前のハンドラは削除されません。したがって、それらをトリガーしたくない場合は、unbind
最初にトリガーする必要があります...