2012-02-27 3 views
31

可能性の重複:
Detect changes in the DOM「DOM変更時」イベントはありますか?

私はセットアップに何かがDOMに削除/変更/追加されたときに発動すべきイベントハンドラを、必要とします。私の場合はThis answerが動作しません。 DOMはサードパーティの開発者が変更することができ、DOMの変更ごとにスクリプトを実行してコードを検証する必要があります。このイベントは、input/textarea/selectの変更に対して発生しません。

私たちはではないすべてのブラウザをターゲットにしています。 Webkit(Chrome、Safari)で動作する限り、十分です。

アイデア?

+6

を参照してください誰もが、これは正確な複製であることを質問へのリンクを持っていますか?私はここからgoogleに来た。 – travis

+5

@travis:正確な重複はしませんが、閉じる:http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom – Sherzod

+2

@travis:私は実際に私のケースに合った答えを見つけました: 'DOMSubtreeModified'を使ってイベントが発生しますが、ブラウザのサポートを確認する必要があります。 Webkitはうまく動作します。 – Sherzod

答えて

3

私はそうは思わないので、すべてのブラウザでこのようなイベントがあります。私はカスタムイベントに行き、domを操作するたびにそれを起動します。

//Subscribe to domChanged event 
$(document).bind('domChanged', function(){ 
    alert('Dom changed'); 
}); 

//Trigger the domChanged event 
$(document).trigger('domChanged'); 
+16

問題はdomがサードパーティによってマニピュレートされていることを示します。だからこれは動作しません。 – Myster

+1

'domChanged'は、イベントモジュールで定義された定数でなければなりません。例えば、 'export const domInjected = 'myDOMInjected';'(ES6)DOMNodeInsertedのような近い将来に何かが存在するかもしれないことに注意したいかもしれません –

関連する問題