1

最近、このようなコードを見つけました

$('.mybuttons').unbind('click.myclick');
$('.mybuttons').bind('click.myclick', function(){
   // do something
});

クリックイベントに反応して実行し// do somethingます。そして、私が非常に興味を持ったのは、他のクリック イベントに干渉しないことです。それらのバインドはまったく解除されません。

イベント 'click.myclick' が名前付きクリック イベントとして機能することを知りませんでした。

私は api.jquery.com を調べましたが、バインドの下でこれについて言及されていません。誰かが私を啓発したり、これが説明されているオンラインドキュメントを指摘したりできますか? いくつかのテストを実行しましたが、.が別のキャラクターに交換された場合、機能しなくなりました。これは、myclick がイベント クリックのプロパティであることを意味しますか?

4

1 に答える 1

9

これは名前空間イベントと呼ばれます。イベントの名前空間を指定することで、任意のイベントまたは特定のイベントの名前空間を使用してバインドされたハンドラーのみを選択的にバインド解除できます。

http://api.jquery.com/on/#event-names

$(element).on("click.mynamespace", handler);
$(element).on("change.mynamespace", handler);
$(element).on("mouseenter.mynamespace mouseleave.mynamespace", handler);
$(element).off(".mynamespace"); // unbind all the above events at once, without affecting others

これは、イベントやクリーンアップの管理を容易にするためにプラグインで一般的に使用されます。

于 2013-04-24T19:43:51.527 に答える