ホームページ > 記事 > ウェブフロントエンド > jQuery 1.9 以降のバージョンで live が削除された後の代替メソッドの詳細な紹介
jQueryの公式説明によると、ライブメソッドは1.7で推奨されなくなり、このメソッドは1.9で削除されました。今後のコードでは代わりに on メソッドを使用することをお勧めします。 on メソッドは、
eventname、トリガー セレクター、イベント関数の 3 つのパラメーターを受け入れることができます。
特別な注意が必要なのは、on メソッドの中央にあるトリガー セレクターは、追加しようとしている HTML 要素 のクラス名、ID、または要素名であり、ライブ効果を実現するために使用します。
たとえば、htmlドキュメントにはすでに親のIDを持つpがあり、このp内に息子のクラスを持つスパンを動的に追加し、このスパンにイベントをバインドします。次のように記述する必要があります:
$('#parent').on('click','.son',function(){alert('test')});
このトリガー セレクターは、実際には、JQ 内のイベント パラメーターを決定する $(e.target).is(selector) であり、トリガー セレクターに一致するトリガー オブジェクトのみがトリガーされます。 。これはイベントのバブリング機構を使って行われており、オリジナルの live もバブリング機構を使用しているため、1.7 から 1.9 まで互換性のために live が存在する必要はありません。 この記事にはあまり内容がありません。この機能を使って何か意味のあることをやってみましょう〜 IE の以前のバージョンでは、マウスを押すと A タグに点線の境界線が表示されます。これはフォーカスが原因です。世界的なイベントで何かをする限り、この問題は解決できます。最新のブラウザではフォーカスがバブルしませんが、古いブラウザではフォーカスがバブルする可能性があります。したがって、下位バージョンのブラウザではライブをフォーカスに使用するのが効果的です。 jQuery 1.9 より前のバージョンでは、次のように記述できます:
$("a").live("focus",function(){ this.blur(); });
jQuery 1.9 以降は、live が削除されているため、次のように記述する必要があります:
$(document).on("focus","a",function(){ this.blur(); });
変更する場合にも注意すべき問題があります。ライブライティングメソッドから 書くときはコールチェーンを調整することを忘れないでください。 live の戻り値はイベントによってトリガーされたオブジェクトであり、on を使用するのはコンテナー オブジェクトであるためです。
//jQuery1.9-$("#panel").find("p").live("click",function(){ alert("x"); }).addClass("x");//jQuery1.9+$("#panel").on("click","p",function(){ alert("x"); }).find("p").addClass("x");
最後のfind("p")に注意してください。そうでなければ問題はありません。
以上がjQuery 1.9 以降のバージョンで live が削除された後の代替メソッドの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。