2017-02-08 7 views
5

मेरे पास div है जिसमें प्रोग्राम में अतिरिक्त कक्षाएं शामिल हैं। मैं इस setInterval कार्यान्वयन के बिना कक्षा नाम परिवर्तन का पता कैसे लगा सकता हूं?सेट के बिना वर्ग परिवर्तन का पता लगाने के अंतराल

setInterval(function() { 
    var elem = document.getElementsByClassName('original')[0]; 
    if (elem.classList.contains("added")) { detected(); } 
}, 5500); 

उत्परिवर्तन ऑब्सर्वर?

+1

आप कोई ईवेंट सक्रिय कर सकते हैं जब आप कक्षा बदलते हैं? या क्या आप उस क्लाइंट पर कक्षा परिवर्तन का पता लगाना चाहते हैं जो बदल नहीं रहा है? अर्थात। दस्तावेज़ बदल गया है? आप पुश अपडेट के साथ ऐसा करने में सक्षम हो सकते हैं। –

+3

यह वही है जो एट्रिब्यूटफिल्टर विकल्प के साथ उत्परिवर्तन विकल्प है: [उत्परिवर्तन पर्यवेक्षकों के साथ एक विशिष्ट शैली विशेषता परिवर्तन पर प्रतिक्रिया कैसे करें?] (// stackoverflow.com/a/39024295) - 'शैली' के साथ' शैली' को प्रतिस्थापित करें। – wOxxOm

+0

मैं बदल नहीं रहा हूं ... मेरा कोड क्रोम एक्सटेंशन – David

उत्तर

6

आप mutation observer का उपयोग कर सकते हैं। यह आजकल widely supported है।

var e = document.getElementById('test') 
 
var observer = new MutationObserver(function (event) { 
 
    console.log(event) 
 
}) 
 

 
observer.observe(e, { 
 
    attributes: true, 
 
    attributeFilter: ['class'], 
 
    childList: false, 
 
    characterData: false 
 
}) 
 

 
setTimeout(function() { 
 
    e.className = 'hello' 
 
}, 1000)
<div id="test"> 
 
</div>

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