以前は、jQueryのdomManip
メソッドにフックしてすべてのjQuery dom操作をキャッチし、挿入された要素などを確認できましたが、jQuery 3.0以降では、jQueryメソッドにフックするのは一般的に適切なソリューションではないため、jQueryチームはそれをシャットダウンしました。内部domManip
メソッドがコアjQueryコードの外部で使用できなくなるようにしました。
以前のように、ミューテーションイベントも非推奨になりました。
$(document).on('DOMNodeInserted', function(e) {
if ( $(e.target).hasClass('MyClass') ) {
}
});
これは回避する必要があり、今日は代わりにMutationObserversを使用する必要があります。これは次のように機能します。
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation)
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
var hasClass = [].some.call(mutation.addedNodes, function(el) {
return el.classList.contains('MyClass')
});
if (hasClass) {
console.log('element ".MyClass" added');
}
}
});
});
var config = {
attributes: true,
childList: true,
characterData: true
};
observer.observe(document.body, config);