2013-05-18 12 views
5

के बारे में उलझन में तो मैं उत्परिवर्तन ऑब्सर्वर का उपयोग करने के बारे में अपने दिमाग को झुका रहा हूं और मैंने कोई प्रगति नहीं की है। मैंने इसके बारे में डब्ल्यू 3 सी साइट और एमडीएन में पढ़ा है। एमडीएन में इसे पढ़ते समय, सब कुछ उदाहरण तक समझ में आया।उत्परिवर्तन ऑब्सर्वर

// 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); 

// later, you can stop observing 
observer.disconnect(); 

जिस हिस्से में मुझे सबसे अधिक परेशानी हो रही है, वह पर्यवेक्षक उदाहरण बना रहा है, यह सुनिश्चित नहीं है कि वहां क्या है इसका वाक्यविन्यास। कंसोल में भी मुझे "टाइप एरर: वैल्यू इंटरफ़ेस नोड लागू नहीं करता है।" कोई फर्क नहीं पड़ता कि मैंने किस उदाहरण को देखा है और उपयोग करने का प्रयास किया है; वांछित jQuery चयनकर्ताओं के साथ उदाहरण में चयनकर्ताओं को प्रतिस्थापित करना (गैर-जेक्यू चयनकर्ताओं ने भी वही समस्या लौटा दी)।

+0

'MutationObserver' _not_ jQuery से संबंधित है। प्रश्न चयनकर्ता झुकाव के समान प्रतीत हो सकता है लेकिन वे एक कार्यान्वयन साझा नहीं करते हैं। – Halcyon

+0

क्या आपके पास "कुछ-आईडी" आईडी वाला तत्व है? – bfavaretto

+0

@ फ़्रिट्स वैन कैम्पन मुझे पता है कि वे संबंधित नहीं हैं, मैं जेक्यू लाइब्रेरी का उपयोग कर रहा हूं, हालांकि और क्या मैं एक जेक्यू चयनकर्ता का उपयोग करता हूं या नहीं, मुझे टाइप एरर संदेश मिलता है। –

उत्तर

0

सबसे पहले आपको निश्चित रूप से जेक्यू चयनकर्ताओं का उपयोग नहीं करना चाहिए क्योंकि वे नोड तत्व नहीं हैं। दूसरा, आपको यह सुनिश्चित करना होगा कि क्वेरी चयनकर्ता शून्य नहीं लौटाता है। यह सुनिश्चित करने के लिए कि दस्तावेज़ पर पहली बार पर्यवेक्षक का प्रयास करें। कोई: यह निश्चित रूप से एक नोड ऑब्जेक्ट है। कुछ की तरह

(
    new MutationObserver(function(mutationEventList){ 
     console.log(mutationEventList) 
    }) 
) 
.observe(document.body, { 
    childList: true, 
    attributes: true, 
    characterData: true 
}) 

जब आप एक पर्यवेक्षक को निशाना बनाने से परिचित हो और समझते हैं MutationObserverInit विकल्प मान होगा (वे नहीं वर्णित हैं यह कर सकता के रूप में अच्छा) आप mutationObserver अधिकार के साथ काम करने के लिए सक्षम हो जाएगा।

संबंधित मुद्दे