ホームページ > ウェブフロントエンド > jsチュートリアル > Method_jquery で jquery の新しいバインディング イベント メカニズムを使用する方法

Method_jquery で jquery の新しいバインディング イベント メカニズムを使用する方法

WBOY
リリース: 2016-05-16 16:52:32
オリジナル
1026 人が閲覧しました

jQuery の非推奨リストを参照して、その中に live() と die() を見つけました。すぐに調べてみると、jQuery 1.7 から、jQuery に新しいイベント バインディング メカニズムである on() と off() が導入されていることがわかりました。 2 つの関数はイベント バインディングを均一に処理します。以前はイベント バインディングを処理するメソッドとして、bind()、live()、delegate() などのメソッドがあったため、jQuery はパフォーマンスの最適化とメソッドの統合の観点から、イベント バインディング メソッドを統合し、以前のメソッドを置き換える新しい関数を立ち上げることにしました。 。

on(イベント,[セレクター],[データ],fn)

events: スペースで区切られた 1 つ以上のイベント タイプと、「click」や「keydown.myPlugin」などのオプションの名前空間。
selector: フィルター イベントをトリガーするセレクター要素の子孫のセレクター文字列。セレクターが null であるか省略されている場合、イベントは選択された要素に到達すると常に発生します。
data: イベントがトリガーされると、event.data がイベント処理関数に渡される必要があります。
fn: イベントがトリガーされたときに実行される関数。 false 値は、false を返す関数の短縮形としても使用できます。

bind() を置き換えます
2 番目のパラメーター 'selector' が null の場合、基本的に on() と binding() の使用法に違いはありません。そのため、on() の方が binding よりも優れていると考えることができます ( ) にはオプションの「selector」パラメータがあるため、on() は簡単に binding()

を置き換えることができます

live() を置き換えます
1.4 より前は、イベントを現在および将来の要素にバインドできるため、誰もが live() を好んで使用していたと思います。もちろん、1.4 以降では、delegate() も同様のことが起こりました。 。 live() の原理は非常に単純で、ドキュメントを通じてイベントを委任するため、on() を使用してイベントをドキュメントにバインドすることで live() と同じ効果を実現することもできます。

Live() の書き方

コードをコピー コードは次のとおりです:

$ ('#list li').live('click', '#list li', function() {
//ここに関数コード。
});
on() は


コードをコピー と記述されます。 コードは次のとおりです: $(document).on('click', '#list li', function() {
//ここに関数コード。



ここで重要なのは、2 番目のパラメーター 'selector' が有効であるということです。これはフィルターとして機能し、選択した要素の子孫要素のみがイベントをトリガーします。
delegate() の置き換え delegate() は、祖先要素を通じて子孫要素のイベント バインディングの問題を委任する目的で 1.4 で導入されました。これには、ある程度、live() と同様の利点があります。 live() が document 要素を通じて委任されるだけであり、デリゲートは任意の祖先ノードにすることができます。 on()を使ってプロキシを実装する場合の書き方は、基本的にdelegate()と同じです。

delegate()の書き方



コードをコピー

コードは次のとおりです。 $('# list').delegate('li', 'click', function() { //ここに関数コード。
});
on() の書き方



コードをコピー


コードは次のとおりです:

$ ('#list ').on('click', 'li', function() { //ここに関数コード。}); 第一パラメータと第二パラメータの順序が逆になっているように見えますが、それ以外は基本的に同じです。
概要
jQuery は 2 つの目的で on() を起動しました。1 つはインターフェイスの統合で、もう 1 つはパフォーマンスの向上です。そのため、今後は、bind()、live()、そして代表者。特に、 live() はすでに非推奨リストに含まれており、いつでも強制終了されるため、今後は使用しないでください。イベントを 1 回だけバインドし、one() を使用する場合、これに変更はありません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート