4

重複の可能性:
jquery で新しい要素がドキュメントに追加されたことを検出するにはどうすればよいですか?

通常の ul 要素にコメントのリストがあります。ページを読み込むときは、次のようなものを使用します(システムはテンプレートに基づいています)

<li id="someId">Some Content</li>
<script>doStuffWithLi('someId');</script>

そのため、ページがロードされ、テンプレートに基づいたいくつかの li がある場合、それぞれの li に対してこのブロックがあります。

これで、ユーザーは新しいコメントとテンプレートを投稿できるようになり、コンテンツがページに再度読み込まれますが、今回はスクリプトは実行されません。一般的にドキュメントの準備ができた後にロードされるjsは実行されないと思いますが、ドキュメントがロードされたものですか?

残念ながら、のような jQuery 関数はありません$('li').live('ready', function() {});。次のような livequery プラグインで試してみましたが、これもうまくいきませんでし$('li').livequery(function() {//DO STUFF});た。コメントを追加する関数に影響を与えることができないため、要素の作成への呼び出しを単純に追加することはできません。

別のliが追加されたときに関数を呼び出すことは可能ですか?

4

1 に答える 1

3

イベントを使用できますDOMSubtreeModified。このイベントをlisの親に割り当て、新しいliがある場合にイベントが発生するかどうかを確認します。この場合、そのliに新しいハンドラーを割り当てます。

$("#li_parent").bind("DOMSubtreeModified", function() {
    alert("possibly a li has been inserted");
    // do your magic here
});
于 2013-02-01T12:25:40.543 に答える