0

ロード後にDOMに追加される要素をリッスンする方法はありますか? 現在、DataTables を使用するテーブルがたくさんあり、探している要素のタイプがページに「表示」されていることが判明した場合に操作したい他の要素がたくさんあります。私がやろうとしていることは、ロードされたときに現在ページにある要素でのみ機能しますが、ロードされた後では機能しません。これは、現在実行中の多くの要素の場合です。

最終的に、私は現在、ページ上で何かが見つかった場合にのみ何かを発生させるために、コードベース全体に戻るのを避ける手段を探していますが、それがロードされた後です。

4

1 に答える 1

2

ブラウザ間で互換性のある「dom に追加された要素」のようなイベントはありません。また、特定のブラウザ用に存在するイベントは、解決するよりも多くの問題を引き起こす傾向があるため、一般的に推奨されません。

通常、DOM に存在しない要素の問題は、イベント バインディングが欠落していることです。jQuery には、イベントをコンテナーにバインドするために使用できる優れたイベント委任があります。これにより、イベントがコンテナーにバブルアップしたときに、イベントを受け取った要素のコンテキストでコールバックが起動されます。

たとえば、次を使用してイベントをバインドできます。

$('a').click(doStuff);

ただし、それは新しいリンクでは機能しません。代わりに、次のようなものを使用できます。

$('#some-container').on('click', 'a', doStuff);

#some-containerこれにより、ページにいつ追加されたかに関係なく、要素内のすべてのリンクのすべてのクリック イベントが傍受されます。

于 2013-03-29T20:51:13.763 に答える