ホームページ > ウェブフロントエンド > jsチュートリアル > 動的に追加された要素を jQuery の .live() から .on() に移行するにはどうすればよいですか?

動的に追加された要素を jQuery の .live() から .on() に移行するにはどうすればよいですか?

DDD
リリース: 2024-12-14 15:41:10
オリジナル
994 人が閲覧しました

How Do I Migrate from jQuery's .live() to .on() for Dynamically Added Elements?

jQuery で .live() を .on() に更新

jQuery バージョン 1.7 以降では、.live() メソッドはより汎用性の高い .on() メソッドに置き換えられました。ただし、.on() に移行する場合、適切なイベント処理を保証するために、特定のニュアンスを考慮する必要があります。

発生する一般的な問題の 1 つは、動的に追加された要素に関係します。 .live() は、指定されたセレクターに一致する既存の要素と将来の要素の両方にイベント ハンドラーを自動的にアタッチしますが、.on() は、呼び出し時に DOM 内にすでに存在する要素にのみハンドラーをアタッチします。

同様のことを実現するには動的要素を扱う場合は、.on() を使用してイベント ハンドラーを上位レベルの要素 (ドキュメント本文など) にバインドする必要があります。

たとえば、動的なドロップダウンが Web ページに追加され、変更を検出するためにイベント ハンドラーをこれらのドロップダウンにアタッチする必要があるシナリオを考えてみましょう。 .on() を使用すると、イベント ハンドラーは次のようにドキュメント本文にバインドされます。

$(document.body).on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});
ログイン後にコピー

または、イベント ハンドラーをターゲット要素のできるだけ近くにバインドすることをお勧めします。これにより、パフォーマンスが向上し、パフォーマンスが向上します。潜在的な問題。

以上が動的に追加された要素を jQuery の .live() から .on() に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート