Bazı DOM düğümlerimdeki değişiklikleri gözlemlemek için MutationObserver
nesnesini kullanmak istiyorum.Tek bir MutationObserver nesnesi birden çok hedefi gözlemleyebilir mi?
Dokümanlar, bir MutationObserver
nesnesi oluşturma ve bir hedefe kaydetme örneği verir.
// select the target node
var target = document.querySelector('#some-id');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
});
});
// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };
// pass in the target node, as well as the observer options
observer.observe(target, config);
yukarıda kod var ki, ama sadece bunun altında ben bu kodu yerleştirebilirsiniz:
var target2 = document.querySelector('#some-other-id');
var config2 = {attributes: true, subtree: true};
observer.observe(target2, config2);
Will observer
:
- şimdi olmak 2 hedeflerini gözlemleyerek?
target
izlemeye son vermeyecek mi? target2
gözlemlememeye karar verecek mi?- hata veriyor mu?
- veya başka bir davranış sergileyecek mi?
Çok güzel! Bu, tüm tarayıcılarda tutarlı bir şekilde çalışıp çalışmadığını merak etse de, gözlemlemeye başladığınız bir öğenin içinde bir öğeyi gözlemlediğinizde tutarlı olup olmadığını merak ediyorum. – NoBugs
Ayrıca dikkat edilmesi gereken bir şey, aynı hedefi birden fazla kez gözlemlemenin, o öğedeki değişiklikler için geri aramada birden çok çağrıya neden olmamasıdır. –
@NoBugs @ major-mann Aynı element üzerindeki çoklu gözlemler veya 2 element üzerinde gözlemler - birinin diğeri içinde olduğu - çoklu mutasyon kayıtlarına (veya çoklu 'mutation.addedNodes') neden olur. Chrome 56'da test ettiğimde fonksiyon. – jdunk