ホームページ > ウェブフロントエンド > jsチュートリアル > jQueryで動的に追加された要素のイベントを処理するにはどうすればよいですか?

jQueryで動的に追加された要素のイベントを処理するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-28 07:04:34
オリジナル
1002 人が閲覧しました

How to Handle Events for Dynamically Added Elements in jQuery?

jQuery で動的に追加された要素のイベントを処理する

jQuery で動的要素を扱う場合、イベント ハンドラーを効果的にアタッチする方法を検討することが重要です。 「.myclass」クラスを持つ要素のクリック ハンドラーがあるとします。これは既存の要素にはうまく機能しますが、AJAX や DHTML を通じて後から追加された要素にはうまく機能しません。

これに対処するために、jQuery はイベント委任のためのメソッドをいくつか提供しています。歴史的には、.live() メソッドが一般的に使用されていましたが、jQuery 1.7 では非推奨になりました。代わりに、 .on() メソッドを使用する必要があります。

イベント委任に .on() を使用する

jQuery 1.7 では、.on() を使用できます。メソッドを使用して、イベント ハンドラーを親要素にアタッチし、イベントを処理する要素のセレクターを指定します。例:

$('body').on('click', 'a.myclass', function() {
    // do something
});
ログイン後にコピー

これにより、「body」要素内の「myclass」クラスを持つすべての「a」タグにクリック イベント ハンドラーがアタッチされます。このアプローチは、既存の要素と動的に追加された要素の両方のイベントを効果的にキャプチャします。

イベント委任に .delegate() を使用する (jQuery 1.7 より前)

使用している場合jQuery バージョン 1.7 より前の場合は、.delegate() メソッドの使用を検討できます。その構文は .on():

$('body').delegate('a.myclass', 'click', function() {
    // do something
});
ログイン後にコピー

に似ています。これは .on() メソッドと同じ機能を実現しますが、古い jQuery バージョンと互換性があります。

の例動的要素

次のことを考慮してください例:

<a>
ログイン後にコピー

ID「anchor1」のリンクをクリックすると、クラス「myclass」の新しい「a」タグが動的に追加されます。 .on() または .delegate() を使用して割り当てられたイベント ハンドラーは、この新しい要素に自動的に適用され、そのクリック イベントが処理されます。

イベント委任技術を利用することで、追加された動的要素にイベント ハンドラーを効果的に接続できます。ページに関連するすべての要素が適切なイベント処理を確実に受け取るようにします。

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

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