P粉9305342802023-08-24 14:21:35
jQuery.fn.on
については、ドキュメント 一个>.
したがって、以下の例では、コードを生成する前に
#dataTable tbody tr が存在する必要があります。
リーリー
新しい HTML がページに挿入される場合は、以下で説明するように、委任されたイベントを使用してイベント ハンドラーをアタッチするのが最善です。
リーリー まだ作成されていない子孫要素のイベントを処理できることに加えて、委任イベントのもう 1 つの利点は、多数の要素を監視する必要がある場合にオーバーヘッドを削減できることです。 tbody
に 1,000 行あるデータ テーブルで、最初のコード例は 1,000 個の要素にハンドラーをアタッチします。
デリゲート イベント メソッド (2 番目のコード例) は、イベント ハンドラーを 1 つの要素
tbody
tr ## から) バブルアップするだけで済みます。 # から tbody
)。
注:
委任されたイベントは
では機能しません。
P粉5471709722023-08-24 11:57:21
jQuery 1.7 以降では、セレクター パラメーターを設定した jQuery.fn.on
を使用する必要があります。
リーリー
イラスト:
これはイベント委任と呼ばれ、次のように機能します。このイベントは、処理される必要がある要素の静的な親 (staticAncestors) に付加されます。この jQuery ハンドラーは、この要素またはその子孫要素の 1 つでイベントが発生するたびに起動されます。次に、ハンドラーは、イベントをトリガーした要素がセレクター (
dynamicChild) と一致するかどうかを確認します。一致するものがあれば、カスタム ハンドラー関数が実行されます。
それまでは、live():< /代码> を使用することをお勧めします。
リーリー
ただし、
は 1.7 で非推奨になり、on()
に置き換えられ、1.9 で完全に削除されました。 live()
署名:
リーリー
...は、次の
の要素を動的に作成する場合、そのイベントを 既存の親
(イベントのコア) にバインドできます。ここでの問題は、動的コンテンツにバインドするのではなく、バインドする既存のものが必要であるということです。これは (そして最も簡単なオプションは) document です。ただし、document は最も効率的なオプション
ではない可能性があることに注意してください。
リーリー
イベントがバインドされているときに存在する任意の親が使用できます。例えば###
リーリー
###に適用されます###
リーリー