1. ホーム
  2. jquery

[解決済み] jQuery .live() と .on() の違いは何ですか?

2023-05-24 12:07:29

質問

新しいメソッド .on() を置き換える新しいメソッドが jQuery 1.7 に追加されました。 .live() に置き換わっています。

両者の違いと、この新しい方法を使うことの利点を知りたいのです。

どのように解決するのですか?

でかなり明確になっています。 ドキュメント を使いたくない理由は明らかです。また、Felix が述べたように .on は、イベントを添付するための、より合理的な方法です。

.live()メソッドの使用は、もはや推奨されません。 メソッドの使用は、もはや推奨されません。 を使用することは推奨されなくなりました。特に、以下の問題が .live()を使用すると、次のような問題が発生します。

  • を呼び出す前に、jQueryはセレクタによって指定された要素を取得しようとします。 .live() メソッドを呼び出す前に、セレクタで指定された要素を取得しようとしますが、これは メソッドを呼び出そうとします。
  • メソッドの連結はサポートされていません。例えば $("a").find(".offsite, .external").live( ... ); ではなく であり、期待通りに動作しません。
  • すべての .live() イベントは document 要素に取り付けられると、イベントは最も長く、最も遅い イベントは処理されるまでに最も長く遅い経路をとります。
  • 呼び出し event.stopPropagation() を呼び出しても、ドキュメント内の下位にあるイベントハンドラを停止させる効果はありません。 に伝搬しています。 document .
  • .live() メソッドは、驚くような方法で他のイベントメソッドと相互作用します、例. $(document).unbind("click") はすべてのクリックハンドラを削除します。 への呼び出しによって付けられた .live() !