2010-04-20 11 views
5

तत्वों के एक निश्चित समूह के संलग्न होने के बाद मैं कुछ कोड ठीक से चलाना चाहता हूं। jQuery.live() आपको ईवेंट हैंडलर को तत्वों से बांधने की अनुमति देता है, भले ही वे बाद में बनाए गए हों। लेकिन AFAIK में निम्न की तरह कुछ करने का कोई उपयुक्त तरीका नहीं है:जब jQuery के लाइव() घटनाओं के साथ तत्व संलग्न होते हैं तो कोड कैसे चलाएं?

$("some selector").live("attach", function() { $(this).whatever(); }); 

मैं इसे कैसे पूरा कर सकता हूं?

संपादित करें: स्पष्टीकरण के लिए; मैं एक नव निर्मित तत्व पर एक एनीमेशन चलाने के लिए चाहता हूँ। तथ्य एनिमेटिंग के अलावा पहले जोड़ने से पहले बेकार है, कुछ ब्राउज़रों में backgroundColor संपत्ति को सीएसएस कक्षा से विरासत में नहीं मिला है जब तक कि यह डोम से जुड़ा न हो। यह मेरे एनीमेशन कोड को तोड़ने का कारण बनता है।

तो मैं इस तत्व को बनाना चाहता हूं, किसी भी तरह से एनीमेशन को चलाने के बाद इसे चलाने के लिए लागू करें और फिर इसे वापस कर दें।

उत्तर

0

AFAIK jQuery में कोई ईवेंट नहीं है जो डोम बदलते समय निकाल दिया जाता है। आप जिस नव संलग्न तत्व है जो पूरी तरह से queryable जैसे ही यह पारित हो जाता है हो जाता है पर कोड को चलाने के लिए की आवश्यकता होगी करने के लिए jQuery जैसे

var $span = $('<span>my new document fragment</span>'); 
$span.css('what','ever'); 

$('div').append($span); 
+0

मैं कुछ विवरण जोड़ लिया है मेरी समस्या के बारे में। आप जो वर्णन करते हैं वह आम तौर पर मैं कर रहा हूं। लेकिन इस मामले में, 'पृष्ठभूमि रंग' सेट नहीं है (कक्षा से) जब तक कि तत्व डीओएम से जुड़ा हुआ न हो। – muhuk

1

एक क्रॉस ब्राउज़र संगत तरीके से करने के लिए बहुत मुश्किल है। मुझे एक समान चीज को कार्यान्वित करना पड़ा है, और उत्परिवर्तन घटनाओं का उपयोग करने के लिए @Makram ने सुझाव दिया है (DOMNodeInserted, DOMNodeRemoved), और एक सेट अंतराल फ़ॉलबैक विधि (केवल परिवर्तनों के लिए मतदान) - उत्परिवर्तन घटनाओं में से एक अगर सेट अंतराल रोक दिया गया है निकाल दिया जाता है, तब आप घटनाओं को काम कर सकते हैं और आपको मतदान की आवश्यकता नहीं है।

नोट के

भी है कि लाइव() हमेशा IE में काम करने के लिए नहीं लगता था, तो मैं मैन्युअल रूप से कर रहा हूँ फिर से बाध्यकारी कुछ परिस्थितियों में घटनाओं (बेशक unbinding पहले के बाद!)

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