/ / .on()または.click()を使用してイベントハンドラをアタッチする必要がありますか? - jquery

.on()または.click()を使用してイベントハンドラをアタッチする必要がありますか? - jquery

単純なクリックハンドラを要素にアタッチしたいと仮定して、私はいつもこれをやっています:

$("#mydiv").click(function() { ... });

JQueryのドキュメントを見ると、 .on() イベントハンドラと置換えを取り付けるための「推奨」方法です .bind(), .delegate() そして .live()

jQuery 1.7以降、.on()メソッドは必要なすべての機能を提供します イベントハンドラを添付します。古いjQueryからの変換についてのヘルプ .bind()、.delegate()、および.live()を参照してください。

そして、 .click() それは言う:

このメソッドは、最初の2つのバリエーションでは.bind( "click"、ハンドラ)、3番目のバリエーションでは.trigger( "click")のショートカットです。

これは、 .click() 使っています .bind() これは廃止され、 .on()、 右?あるいは、 .click() しかし、それはある時点でのショートカットになるでしょう .on("click")

基本的には、私の質問はこれです...今日、JQueryコードを書くときは、

Variant 1: $("#mydiv").click(function() { ... });

または:

Variant 2: $("#mydiv").on("click", function() { ... });

回答:

回答№1は4

個人的に私は on() jQuery 1.7以降のすべてのイベントバインディング

これは、動的に追加される要素とページの読み込みで利用可能な要素のあいだにあいまいさがないことを意味します。

また、あなたが述べるように、 click() (および他のイベントのショートカット)が on("event", function() { ... }); とにかくjQueryによって、それはプロセスのステップを保存します - これはもちろん目立った違いを作りません。

そして最後に、 on("click") 私の意見ではよく読んでいます。