12

要素が DOM に追加された後、Javascript で要素のイベントをトリガーする方法を知っている人はいますか?

一般的な考え方は次のようなものです。

var elem = document.createElement('div');
elem.addEventListener('ON_ADD_TO_BODY', function(){console.log(elem.parentNode)});
//... LATER ON ...
parentElemInBody.appendChild(elem); // <- Event is triggered here after append

要素を DOM に追加するまでトリガーされるべきではない関数がいくつかあるため、要素が追加されるまで実行を遅らせることは理にかなっています。

後でそれらを明示的に呼び出す必要なしにこれを行う方法はありますか、またはsetTimeout要素がDOMにまだ追加されているかどうかを確認するためのチェックを含むハックを行う必要がありますか?

4

1 に答える 1

17

DOMNodeInsertedミューテーション イベントを使用します。

ドキュメントはこちら: https://developer.mozilla.org/en-US/docs/DOM/Mutation_events

上記のページにある使用例:

element.addEventListener("DOMNodeInserted", function (ev) {
  // ...
}, false);

注: 2016 年 4 月 17 日

Mutation Events は現在非推奨です。現在推奨されるアプローチは Mutation Observersです。

于 2012-12-28T18:40:39.727 に答える