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 サイトの他の関連記事を参照してください。