दिलचस्प पोस्ट
क्या एचटीएमएल 5 में एक आदानों की पैटर्न विशेषता अनदेखा मामले है UIAlertController में UIAlertAction को छवि जोड़ें मैं कैसे 'System.Windows.Input.Key' को 'System.Windows.Forms.Keys' में परिवर्तित कर सकता हूं? पोस्टग्रेज़ में आपके सभी तालिकाओं के लिए पंक्ति गणना कैसे मिलती है पायथन सूची निर्देशिका, उपनिर्देशिका, और फ़ाइलें NumPy सरणी के लिए पायथन अनुक्रम कन्वर्ट, अनुपलब्ध मानों को भरना WPF एक ऑब्जेक्ट के गुणों के लिए बाइंडिंग क्यों करता है, लेकिन फ़ील्ड नहीं? संबंधपरक सेट-आधारित प्रश्न कर्सर से बेहतर क्यों हैं? यूएसबी ड्राइव सम्मिलन और खिड़कियों सेवा का उपयोग हटाने और सी # का पता लगाने स्ट्रिंग को JSON सरणी में कनवर्ट करें सीतनिद्रा में होना: MyInterceptor # onFlushDirty कभी नहीं कहा जाता है सामग्री संपादन योग्य डिवा में कर्सर पर टेक्स्ट डालें मैं एडीबी के साथ एंड्रॉइड से कनेक्ट कैसे कर सकता हूं? इस ब्लॉक में दृढ़ता से आत्म-कब्जा करने से एक बनाए रखने के चक्र की संभावना हो सकती है एंड्रॉइड कम्पास जो झुकाव और पिच के लिए क्षतिपूर्ति कर सकता है

क्या एक jquery घटना है कि आग जब एक नया नोड dom में डाला जाता है?

क्या डोमेन पर डालें जाने पर डॉट तत्व पर एक घटना jquery आग है?

उदाहरण के लिए कहें कि मैं एजाक्स के माध्यम से कुछ सामग्री लोड करता हूं और इसे DOM और जावास्क्रिप्ट के किसी दूसरे टुकड़े में जोड़ देता हूं, मैं .live () का उपयोग करते हुए एक घटना जोड़ सकता हूं, जब एक विशिष्ट चयनकर्ता से मिलान करने वाला कोई ईवेंट DOM में जोड़ा जाता है तो ईवेंट पर आग लग जाती है कहा तत्व $ (दस्तावेज़) के समान .ready () लेकिन सामग्री पर जो गतिशील रूप से DOM में जोड़ा गया है

मैं क्या सपना देख रहा हूं:

$('.myClass').live('ready', function() { alert('.myClass added to dom'); }); 

अगर jquery ऐसी बात का समर्थन नहीं करता है, तो क्या कोई अन्य तरीका है कि मैं इस कोड को संशोधित किए बिना इस कार्यक्षमता को हासिल कर सकता हूं जो वास्तव में प्रारंभिक डोमेन हेरफेर करता है?

Solutions Collecting From Web of "क्या एक jquery घटना है कि आग जब एक नया नोड dom में डाला जाता है?"

.livequery() प्लग इन अब भी इस आला की जरूरत को पूरा करता है, जैसे:

 $('.myClass').livequery(function() { alert('.myClass added to dom'); }); 

यदि आप इसे ऊपर की तरह एक कॉलबैक फ़ंक्शन पास करते हैं, तो यह प्रत्येक नए तत्व के लिए चलाएगा, जो आरंभ में और जैसा कि वे जोड़े गए हैं। समारोह के अंदर this सिर्फ-जोड़ा तत्व को संदर्भित करता है

.live() घटनाओं के लिए बुलबुले सुनता है, तो इस संबंध में "तत्वों को जोड़ा जाता है" स्थिति में, जब यह उपयुक्त नहीं होता है, .livequery() (प्लगइन) पूरी तरह से .livequery() के अतिरिक्त द्वारा प्रतिस्थापित नहीं किया गया था कोर, केवल घटना बुदबुदाती भाग (अधिकांश भाग के लिए) था।

पदावनत : नीचे @ मेग्लियो की टिप्पणी के अनुसार, DOMNodeInserted ईवेंट को बहिष्कृत किया गया है, और भविष्य में कुछ अज्ञात समय पर वेब से निकाल दिया जाएगा। सर्वोत्तम परिणामों के लिए, उत्परिवर्तन ओब्सर्वर एपीआई के बारे में सीखना शुरू करें।

नीचे @ डाइन के उत्तर देखें

अगर आप 'डोमोडएन्स्टेक्टेड' घटना को दस्तावेज़ या बॉडी में सीधे बाँध देते हैं, तो इसे प्रत्येक बार कुछ भी डाला जाएगा निष्पादित किया जाएगा। यदि आप चाहते हैं कि कॉलबैक केवल एक विशेष प्रकार का तत्व जोड़ा जाए, तो आप प्रत्यायोजित ईवेंट का उपयोग करने के लिए बुद्धिमान हो जाएंगे

आमतौर पर, यदि आप डीओएम में तत्वों का एक वर्ग जोड़ रहे हैं तो आप उन्हें एक सामान्य माता-पिता के साथ जोड़ देंगे। तो इस तरह से ईवेंट हैंडलर को संलग्न करें:

 $('body').on('DOMNodeInserted', '#common-parent', function(e) { if ($(e.target).attr('class') === 'myClass') { console.log('hit'); } }); 

मूल रूप से मके के ऊपर जैसा ही उत्तर है , लेकिन जब से आप एक प्रत्यक्ष ईवेंट हैंडलर के बजाय एक प्रत्यायोजित ईवेंट हैंडलर का उपयोग कर रहे हैं, तो उस कोड को कम बार निकाल दिया जाएगा

ध्यान दें:

 $('body').on('DOMNodeInserted', '.myClass', function(e) { console.log(e.target); }); 

यह भी काम करने लगता है … लेकिन मुझे पता नहीं क्यों

यदि आप कटिंग एज पर रह रहे हैं तो आप उत्परिवर्तन ऑब्ज़र्वर का उपयोग कर सकते हैं 🙂

  var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; var list = document.querySelector('ol'); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'childList') { var list_values = [].slice.call(list.children) .map( function(node) { return node.innerHTML; }) .filter( function(s) { if (s === '<br>') { return false; } else { return true; } }); console.log(list_values); } }); }); observer.observe(list, { attributes: true, childList: true, characterData: true }); 

देखें: https://hacks.mozilla.org/2012/05/dom-mutation-server-reacting-to-dom-changes-without-killing-browser-performance/

संपादित करें: यह उत्तर काफी पुराना है, अब ओपेरा मिनी के अलावा सभी ब्राउसर द्वारा उत्परिवर्तन ऑब्ज़ेर्वर का समर्थन किया जाता है: http://caniuse.com/#feat=maughnobserver

इसके अलावा, यहां प्रत्यक्ष लिंक है जो एमडीएन पर एपीआई है: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

कोई jQuery इवेंट नहीं है, लेकिन एक डोम ईवेंट है: DOMNodeInstertIntoDocument आप jQuery के विधि के आधार पर DOM ईवेंट के लिए सुन सकते हैं। इसलिए:

 $('.myClass').on('DOMNodeInsertedIntoDocument', function() { alert('myClass was inserted into the DOM'); } 

यह liveQuery का उपयोग करने के लिए बेहतर होगा क्योंकि यह प्लगइन थोड़ा बासी है (2 + साल के लिए कोई अपडेट नहीं, केवल jQuery 1.2.x के लिए समर्थन का वादा करता है)।

InsertionQuery पर एक नज़र डालें यह एक दिलचस्प लाइब्रेरी है जो नए तत्वों का पता लगाने के लिए सीएसएस का उपयोग करता है। क्योंकि यह सीएसएस का उपयोग करता है क्योंकि कोई प्रदर्शन हिट नहीं है और आप चयनकर्ता से मेल खाने वाले वास्तविक तत्वों को वापस लौटाते हैं।