이전에는 jQuery의 domManip메소드에 연결하여 모든 jQuery dom 조작을 포착하고 삽입 된 요소 등을 확인할 수 있었지만 jQuery 팀은 일반적으로 jQuery 메소드에 연결하는 좋은 솔루션이 아니기 때문에 jQuery 3.0 이상에서이를 종료했습니다. 내부 domManip메서드는 더 이상 핵심 jQuery 코드 외부에서 사용할 수 없도록 만들었습니다 .
Mutation Events는 이전과 같이 사용되지 않습니다.
$(document).on('DOMNodeInserted', function(e) {
if ( $(e.target).hasClass('MyClass') ) {
}
});
이것은 피해야하며, 오늘은 Mutation Observers를 대신 사용해야합니다.
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);