2011-05-17 6 views
13
<div class="current"></div> 
<a href="#">text</a> 

मैं पता कैसे लगाते हैं जब उदा .live कक्षा को इस <div> में जोड़ा गया है और यह हुआ जब कुछ हुआ?मैं कैसे पहचान सकता हूं कि एक HTML तत्व की कक्षा कब बदलती है?

उदाहरण के लिए, यदि वर्ग बदल जाते हैं तो लिंक छिपा।

मैं एक न्यूनतम किया गया स्क्रिप्ट <div> के वर्ग पर परिवर्तन करता है। मेरे स्थान पर यह स्थान ढूंढना बहुत बड़ा है, इसलिए मैं वर्ग परिवर्तन को पकड़ने के लिए कुछ रास्ता खोज रहा हूं।

+0

कौन सा ब्लॉक? '.current'? – Neal

+2

'setInterval' का उपयोग करके अंतर के लिए बस इतना सारे मिलीसेकंडों को जांचने का एक छोटा तरीका हमेशा होता है। – pimvdb

उत्तर

12

डोम ईवेंट नहीं है, लेकिन वे सही से दूर है और सबसे ब्राउज़र में उपलब्ध हैं। दूसरे शब्दों में: संभव नहीं (विश्वसनीय रूप से)। अंतराल की तरह हैक हैं और प्रत्येक पुनरावृत्ति में इसे जांचते हैं, लेकिन अगर आपको ऐसा कुछ करने की ज़रूरत है, तो आपका डिज़ाइन शायद खराब हो गया है। ध्यान रखें कि ऐसी चीजें धीमी होंगी और हमेशा देरी होगी। देरी छोटी, आवेदन धीमा। ऐसा मत करो।

+0

मुझे अच्छी तरह याद नहीं है लेकिन मैं मोज़िला देव सेंट्रल पर एक लेख में आया हूं जो इन घटनाओं (मुख्य रूप से प्रदर्शन मुद्दों) का उपयोग करने के खिलाफ चेतावनी देता है। – sitifensys

+0

यह सच नहीं है, यह संभव है, और भरोसेमंद है, यह सिर्फ आपको किसी भी और सभी डोम घटनाओं को सुनने और उन्हें फ़िल्टर करने की आवश्यकता है। आपके मामले में विशेष रूप से शरीर के बच्चों को $ (दस्तावेज़) सुनें। ("घटना", "शरीर *", फ़ंक्शन()); यह एक महंगा ऑपरेशन होगा, इसलिए मैं इसके खिलाफ सलाह दूंगा, लेकिन यह संभवतः विश्वसनीय और भरोसेमंद –

+0

@ टोबियासहेगेनबेक: कक्षा विशेषता परिवर्तनों का पता लगाने के लिए आप किस घटना को सुनेंगे? जहां तक ​​मुझे पता है, 'ऑन()' घटनाओं का पता लगाने के लिए घटना बुलबुले का उपयोग करता है - डीओएम परिवर्तन नहीं - एक तत्व के बच्चों में। हालांकि, यदि ब्राउजर डोम इवेंट अविश्वसनीय हैं (जो वे निश्चित रूप से लिखने के समय थे), जो अंतराल हैक का उपयोग किए बिना ओपी पूछने में मदद नहीं करेगा। इनमें से कुछ परिस्थितियों में बदलाव हो सकता है, इसलिए मैं वास्तव में उत्सुक हूं कि यह कैसे पूरा किया जाएगा। कृपया विस्तार से बताएं। – jwueller

2

आप कुछ विचारों के लिए following article चेकआउट कर सकते हैं।

2

मुझे नहीं पता कि लिंक में जो क्लास आप जोड़ते हैं वह हमेशा समान होता है, लेकिन यदि ऐसा है, तो आप इस के लिए सीएसएस का उपयोग क्यों नहीं करते हैं।

<style type='text/css> 
    .myaddedclass{display:none} 
</style> 
+0

हां। @ रूनी, यदि आप चाहते हैं कि तत्व छुपाएं/दिखाएं, रंग या अन्य विशेषताओं को बदलें , इत्यादि। बस उस वर्ग पर सीएसएस को लक्षित करें जिसे आप जोड़ रहे हैं और आपको बदलाव के लिए मॉनीटर करने की आवश्यकता नहीं है। सीएसएस आपके लिए यह करेगा। इस तरह मैं छुपा/शो को संभालता हूं, "वर्तमान में चयनित" पंक्ति को चिह्नित करता हूं , और इसी तरह के मुद्दों। –

2

यदि आपको केवल एक बार यह पता लगाना है (यानी कोड में नहीं), तो Google क्रोम का वेब इंस्पेक्टर दिखाता है कि डोम लाइव बदलता है। यकीन नहीं है कि अगर आपकी स्थिति में मदद मिलेगी।

+3

+1 आप नोड पर राइट-क्लिक भी कर सकते हैं (तत्व टैब में) और "गुणों को तोड़ें" पर क्लिक करें - इससे जेएस को सही रेखा पर रोकना चाहिए। (इसे प्राप्त करने के लिए इसे कम करें बेहतर लाइन ब्रेक: http://jsbeautifier.org/) – peteorpeter

+0

@peteorpeter: ओह, यह वास्तव में आसान है, मुझे इसके बारे में कोई जानकारी नहीं थी। –

+0

मुझे अभी यह पता चला है (कौन जानता है कि यह कितना समय रहा है - चुपके क्रोम अपडेट ...) – peteorpeter

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

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