मैं अपने कुछ डोम नोड्स में परिवर्तनों का निरीक्षण करने के लिए MutationObserver
ऑब्जेक्ट का उपयोग करना चाहता हूं।क्या एक उत्परिवर्तन ऑब्सर्वर ऑब्जेक्ट एकाधिक लक्ष्यों को देख सकता है?
दस्तावेज़ MutationObserver
ऑब्जेक्ट बनाने और इसे लक्ष्य पर पंजीकृत करने का एक उदाहरण देते हैं।
// 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);
मैं ऊपर कोड है सकते हैं, लेकिन सिर्फ इसके तहत, मैं इस कोड को जगह:
var target2 = document.querySelector('#some-other-id');
var config2 = {attributes: true, subtree: true};
observer.observe(target2, config2);
विल observer
:
- होना 2 लक्ष्यों को देख?
- क्या यह
target
देख रहा है? - क्या यह
target2
का निरीक्षण न करने का निर्णय करेगा? - क्या यह एक त्रुटि फेंक देगा?
- या यह कुछ अन्य व्यवहार प्रदर्शित करेगा?
बहुत अच्छा! हालांकि मुझे आश्चर्य है कि यह सभी ब्राउज़रों में लगातार काम करता है, और मुझे आश्चर्य है कि यदि आप किसी तत्व के भीतर तत्व को देखना शुरू करते हैं तो यह लगातार संगत है? – NoBugs
कुछ भी ध्यान देने योग्य है कि एक ही लक्ष्य को एक से अधिक बार देखकर, उस तत्व में परिवर्तन के लिए कॉलबैक के लिए कई कॉल नहीं होंगे। –
@NoBugs @ प्रमुख-मैन न तो एक ही तत्व पर कई अवलोकन और न ही 2 तत्वों पर अवलोकन - जहां एक दूसरे के भीतर था - परिणामस्वरूप कई उत्परिवर्तन रिकॉर्ड (न ही एकाधिक 'mutation.addedNodes' में) सुनवाई को पारित किया जा रहा है जब मैंने क्रोम 56 पर परीक्षण किया था तो कार्य करें। – jdunk