2016-10-18 6 views
2

jQueryを使用して、動的に挿入された要素を検出するにはどうすればよいですか?このような何か:jQueryを使用した動的要素の確認

$('div#cart').on('mutate', function() { 
    // Do something. 
}); 

それは時にDOMが最初にロードされたときに存在していなかった要素、アヤックスを使用して挿入しても要素をトリガーできるようにする必要があります。

+0

あなたが動的な要素を管理していると仮定すると、あなたはそれらにコールバックを適用することができます。 – Roberrrt

+3

あなたが探しているのは、['MutationObserver'](https://developer.mozilla.org/en/docs/Web/API/MutationObserver)です。ただし、IEの古いバージョンではうまくサポートされていないことに注意してください。より良い解決策は、DOMを更新した後にあなた自身がカスタムイベントを発生させることです。 –

+0

@RoryMcCrossan DOMSubtreeModifiedを提案できますか? –

答えて

1

イベントはDOMSubtreeModifiedと呼ばれ、変更のサブツリーを観察するものです。私はInternet Explorerや他のブラウザでの作業についてはわかりませんが、ChromeとFirefoxの最新バージョンで動作すると確信しています。このような

何か:

$(function() { 
 
    $("#dom").on("DOMSubtreeModified", function() { 
 
    console.log("DOM content changed."); 
 
    }); 
 
    setTimeout(function() { 
 
    $("#dom").text("Hello, World!"); 
 
    }, 1000); 
 
    $("button").click(function() { 
 
    $("#dom").text("Button Change"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="dom">Hello</div> 
 
<button>Change Text</button>

+3

'DOMSubtreeModified'は非推奨ですか? –

+0

@A.Wolffはい。私はメモを追加します。しかし、それは動作します。 –

+0

ええ、少なくともそれは動作します;) –

関連する問題