2012-03-12 8 views
16

新しい要素がドキュメントまたはその子に追加されたときに、イベントハンドラが呼び出されるようなイベントリスナを作成する必要があります。JavaScriptで新しい要素を追加するなどのイベントを聞く

どのようにすればいいですか?

+1

が重複する可能性(http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom) –

+0

@zeacuss:行くここのhttp:// WWW .w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener – krish

答えて

23
.bind('DOMNodeInserted DOMNodeRemoved') 

これは、要素が挿入または削除されたことを確認するイベントです。

このイベントの親要素にバインドします。

とハンドラでの関数を呼び出す

JSフィドルのデモ:DOMNodeInsertedはDOM Level 3の勧告で推奨されていませんhttp://help.dottoro.com/ljmcxjla.php

+1

デモは完璧です – zeacuss

+0

これは素晴らしいことですが、IEを除いて... –

+6

https:/ /developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events – yomexzo

4

例はこちらhttp://jsfiddle.net/PgAJT/

クリック...。それらを使うとブラウザが減速する(彼らは言う)。何が必要なのかに応じて、要素を挿入するコード内でカスタムイベントをトリガすることが理にかなっています。

+4

実際、私はノードを追加するものではないので、追加された場所ではそれを処理できません。 – zeacuss

18

突然変異のイベントは非推奨です。代わりにMutation Observerを使用してください。 arrive.jsライブラリーを使用することもできます。内部的にMutation Observerを使用して素敵な単純なAPIを提供し、要素の作成と削除を待ち受けます。

$('#container').arrive('.mySelector', function(){ 
    var $newElem = $(this); 
}); 
[DOMの変更を検出]の
+2

非常に良いライブラリ!私の現在の問題を解決し、今後のプロジェクトで確実に使用する予定です。ありがとう、Uzair! – mkp

関連する問題