この方法が存在する理由を私は理解していない....jQuery 1.7 .on()メソッド、なぜそれが必要ですか?
あなたが常にちょうど$(el).click()
代わりの.on()
で$(el).on('click', function...
この方法が存在する理由を私は理解していない....jQuery 1.7 .on()メソッド、なぜそれが必要ですか?
あなたが常にちょうど$(el).click()
代わりの.on()
で$(el).on('click', function...
$(el).on
は、イベントタイプ、直接イベントおよび委任イベントのイベントをバインドする統合された方法を開発者に提供します。また、オブジェクトを渡すことで複数のイベントを同時にバインドすることもできます(documentationの2番目の例)
また、いくつかのキーストロークを保存して、それが価値があるかどうかを確認します。
使用すると、1つ以上をバインドすることができますにしてください私には思えます複数のイベントで同じことをしたい場合は、コードを複製したり、別の関数を作成したりする必要はありません。
これは、さまざまな他のイベントバインディング関数を組み合わせたり置き換えたりするためにステージングされているようです。それらをすべてバインドする1つの関数! (LOTR geekery ftw)
ベルのリング... – roselan
これは、新しい.on()
が.bind()
、.delegate()
と.live()
に多少の重複機能の融合であるというのが私の理解です。より統一されたインプリメンテーションへの実装の組み合わせと同じくらい、APIのマージです。
$(el).click(...)
は、$(el).bind('click', ...)
の省略形です。 documentation for bind()
とdocumentation for on()
を比較すると、いくつかの違いがあります。これはかなりよくbind()
ドキュメントの最初の段落で要約されている
:jQueryの1.7のよう
、.on()メソッドは、ドキュメントへ 添付イベントハンドラの好ましい方法です。以前のバージョンでは、 .bind()メソッドを使用して、イベントハンドラを 要素に直接取り付けることができます。ハンドラは、 のjQueryオブジェクトの現在選択されている要素にアタッチされています。したがって、これらの要素は.bind()の呼び出しである のポイントに存在する必要があります。より柔軟なイベントバインディングについては、.on()または.delegate()のイベントデリゲートの説明 を参照してください。
1つの関数を他の関数と複数のイベント型にバインドすることもできます。これはイベント処理の統一であり、複数のイベントを複数のイベントに割り当てることができます。 – JAAulde
確かに、特に言及された '.click()'ではありません! – JJJ
ああ、それは本当です – JAAulde