ajax 経由でデータをロードしてさまざまなページを表示する index.html を持つ Web アプリケーションがあります。
data-watch="true"
これらのさまざまなページで、変更を監視する必要があるいくつかの要素 (それ自体とその子を含む) に属性を配置したいと考えています。例えば:
<ul data-watch="true">
<li>this</li>
<li>is</li>
<li>a</li>
<li>test</li>
</ul>
それ自体が変更された場合ul
、またはその子ul
が追加/変更/削除された場合、何が変更されたかを示す関数を実行する必要があります。はul
一例です。これは、多数の子を含む div である可能性もあります (また、子の中の子など)。
いくつかの調査の結果、これには Mutation Observer を使用することが最善の方法であることがわかりました。ただし、突然変異オブザーバーだけではまだうまく機能しません。その後、 Mutation Summaryという名前のライブラリを見つけました。このライブラリは、自分のやりたいことができると主張しています。思い通りに動かせません。
今私はこれを持っています:
var observer = new MutationSummary({
callback: handleChanges,
queries: [{
attribute: 'data-watch',
}]
});
function handleChanges(summaries){
console.log(summaries);
}
しかし、このコードでは、 ajax 経由でロードされhandleChanges
たときにトリガーされません。ul
ただし、属性を each に追加すると、機能しますli
。しかし、検査が必要な各要素の属性を定義したくありません。すべての子を追跡する親要素に配置するだけです。これは少なくとも私には最も論理的なようです...
MutationSummaryライブラリを使用しないソリューションがある場合は、まったく問題ありません。data-watch="true"
属性を持つ要素 (およびその子) に対するすべての変更 (追加、変更、または削除) がトリガーされる限り。
この件で私を助けてくれませんか?