jquery新規バインディングイベント機構on方法の使用方法


jQueryのdeprecatedリストを見ると、ライブ()とdie()が中に入っていることが分かりました。早速見ました。jQuery 1.7から、jQueryは新しいイベントバインディング機構を導入しました。on()とoff()の二つの関数はイベントバインディングを統一します。これまではbind()、live()、delegate()などの方法でイベントバインディングを処理してきたので、jQueryは性能の最適化及び方式の統一の面から、新しい関数を出してイベントバインディング方法を統一することを決定し、以前の方法を取り替えることを考えています。
on(events,[selector],[data],fn)
events:1つまたは複数のイベントタイプは、「click」または「keydown.myPlugin」のように、スペースで区切られています。セレクタ文字列はフィルタのトリガイベントの選択要素の後裔に使用されます。選択がnullまたは省略されている場合、選択された要素に到達すると、イベントは常にトリガされます。data:イベントがトリガされた時にイベントハンドラ関数を転送します。fn:このイベントがトリガされた時に実行される関数です。false値は、関数の簡単な書き込みをしてfalseを返しても良いです。
第二のパラメータ'selector'がnullである場合、on()とbind()は使い方にほとんど違いがないので、on()はbind()よりもオプションの'selector'パラメータが多いと考えられます。
代替ライブ()は1.4前にライブ()が大好きだと信じています。イベントを現在と今後の要素に結びつけることができます。もちろん1.4後にdelegate()も同じようなことができます。ライブ()の原理は簡単で、documentを通じてイベントを依頼していますので、on()を使ってイベントをdocumentに結び付けることでライブ()のような効果が得られます。
ライブ()の書き方
n()書き方
ここの鍵は2番目のパラメータ'selector'が働いています。これはフィルタの役割です。選択された要素の後代要素だけがイベントをトリガします。
delegate()delegate()は1.4で導入されており、先祖の要素を通して後代の要素を委任するイベントバインディング問題を代理することが目的であり、ある程度はライブ()の長所と似ている。ライブ()はdocument要素により委任されますが、delegateは任意の祖先ノードであっても良いです。on()を使って代理を実現する書き方はdelegate()とほぼ一致します。
delegate()の書き方
n()書き方
一つ目と二つ目のパラメータの順序が逆になっているようです。他の基本は同じです。
jQueryをまとめてon()を出す目的は二つあります。一つはインターフェースを統一するため、もう一つは性能を高めるため、今からbind()、live()、delegateをon()に置き換えます。特にライブはやめてください。もうリストがないから、いつでも消されます。一度だけイベントを結びつけるなら、次にoneを使いましょう。これは変わりません。