2011-10-25 16 views
5

खोज ने मेरे प्रश्न का हल नहीं किया है, इसलिए यहां पूछें। मैं लाइव() के संयोजन में थोड़ी देर के लिए livequery() का उपयोग कर रहा हूं। आम तौर पर, मैं ज्ञात घटनाओं के लिए लाइव() का उपयोग करता हूं जैसे क्लिक करें लेकिन एक विशिष्ट चयनकर्ता पर ट्रिगर करने और प्लगइन लगाने के लिए लाइवक्व्यूरी का उपयोग करना। उदाहरण के लिए ...लाइव/प्रतिनिधि/लाइव/लाइव में कनवर्ट करना?

$('#childDomains').livequery(function() { 
    var element = $(this); 
    element.jqGrid({ 
    // plugin initialization here 
    }); 
}); 

मैं अगर वहाँ रहते हैं()/प्रतिनिधि() या किसी अन्य शांत jQuery सुविधा के बारे में मैं नहीं जानता का उपयोग कर एक ही बात करने के लिए एक रास्ता है सोच रहा हूँ। मैं अपने निर्भरता भार को हल्का करने का प्रयास कर रहा हूं और मैंने देखा कि 02-2010 के बाद से लाइवक्वरी अपडेट नहीं की गई है।

अद्यतन: मुझे लगता है कि मैं पर्याप्त स्पष्ट नहीं हूं। मेरे पास एक पृष्ठ है जो jqGrid का उपयोग करता है और एक टैबलेट तत्व को jqGrid अजाक्स डेटा ग्रिड में बदल देता है। ऐसा होने के लिए कोई वास्तविक क्लिक ईवेंट नहीं है। जिस पृष्ठ पर यह तालिका चालू है वह AJAX के माध्यम से लोड की जाती है और जब भी डोम $ ("# childDomains") देखता है तो उसे उस तत्व में jqGrid प्लगइन लागू करना चाहिए। बस मेरे लाइव उदाहरण के साथ कर रहा है।

मेरी समझ से अब तक, मुझे विश्वास नहीं है कि यह बिना किसी जीवितता के संभव है, लेकिन मैं यह सुनिश्चित करना चाहता हूं।

उत्तर

4

नहीं, jQuery का उपयोग करने के लिए ऐसा करने के लिए कोई स्पष्ट तरीके नहीं हैं; मैं कहूंगा कि इस समय लाइवक्वरी सबसे अच्छी विधि है।

यह कहा जाता है कि ऐसा करने के अन्य संभावित तरीके हैं। Here किसी ने डीओएम में तत्व डालने पर पता लगाने के लिए अपना स्वयं का मतदान कोड लॉन्च किया है। आप इसे अनुकूलित कर सकते हैं, लेकिन जहां तक ​​मैं देख सकता हूं कि लाइवक्वरी पहले से ही आपके लिए यह कर रही है।

एक और तरीका है here उल्लिखित लेकिन इस deprecated in the W3C Level 3 Events Specification है, poor performance के कारण के रूप में DOMNodeInserted घटनाओं के लिए सुनने के लिए है। यह not IE compatible भी है।

This questionDOMNodeInserted घटनाओं की निगरानी और डीओएम को बदलने वाले किसी भी तरीके से हुकिंग के विकल्प पर कुछ अच्छी चर्चा है। (यह थोड़ा पुराना है, लेकिन मेरे शोध से अभी तक कुछ भी नहीं बदला है)।

निष्कर्ष में, लाइवक्विरी का उपयोग करते रहें।

भी ध्यान रखें कि jQuery 1.7 से .live() (deprecated), और .delegate() (superseded) के साथ .on() (और .die() .off() के साथ) प्रतिस्थापित किया जाना चाहिए। नई विधियां ऐसी किसी भी चीज को पेश नहीं करती हैं जो आपकी लाइवक्वेंसी निर्भरता को हल कर सकती है।

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