2012-02-22 42 views
9

मैं क्रम में समारोह संलग्न का उपयोग एक और तत्व में कुछ div जोड़ सकता हूँपहुँच jQuery तत्व संलग्न समारोह के बाद

('#test-append').append("<div class='new_div'><b>some text</b></div>") 

सब कुछ ठीक चल रहा है और मैं जोड़ा div देख सकते हैं, `लेकिन मैं यह भी है कि उपयोग करने के लिए के बाद की जरूरत है आदेश में इस के साथ कुछ करने के लिए में div चयनकर्ता उदाहरण के लिए div को छिपाने के लिए यह तो मैं का उपयोग folowing

$('.new_div').click(function(){ 
      do somthing here 
     }); 

लेकिन यह भी काम नहीं कर रहा है, तो मैं सिर्फ सरल चेतावनी ('हाय') कॉल का उपयोग करें। ऐसा लगता है कि jQuery संलग्न वर्ग को नहीं पहचानता है (मैं भी यह आईडी के साथ की कोशिश की और मैं एक ही परिणाम प्राप्त)

मैं

धन्यवाद

उत्तर

16

jQuery 1.7 इससे पहले कि आप अनदेखी है कि क्या वे बाध्यकारी है या नहीं के समय में ही अस्तित्व में तत्वों के लिए बाध्य करने के लिए घटनाओं() या प्रतिनिधि() लाइव का उपयोग करने की जरूरत है।

jQuery 1.7 के बाद से, आप

$('root-element').on('click', 'selector', function() { do it }) 

ऊपर संपादित किया जाता है का उपयोग कर सकते जेस्पर्स के अनुसार टिप्पणी

+2

jQuery 1.7 तो शामिल है, तो '.click (...)' नक्शे को '.on (, 'क्लिक' ...)' ' – Jasper

+0

बाँध()' घटना प्रतिनिधिमंडल का उपयोग नहीं करता है, तो यह केवल तत्वों के लिए बाध्य होगा कि बाध्यकारी होने पर वर्तमान में डोम में हैं। और आप '.on()' की तरह '.on()' का उपयोग कर रहे हैं, ताकि इस प्रारूप में '.on() 'का उपयोग करने के लिए ईवेंट को या तो प्रतिनिधि नहीं दिया जाएगा:' $ (' root- तत्व ')। (' क्लिक करें ',' चयनकर्ता ', फ़ंक्शन() {इसे करें})'। – Jasper

+0

कोई इस उदार जवाब को हटा देता है ... @ जैस्पर, धन्यवाद, शायद आपको उस टिप्पणी को उत्तर के रूप में पोस्ट करना चाहिए? – mindandmedia

0

मैं शायद घोषणा करेंगे इस मुद्दे पर कुछ मदद की सराहना करेंगे पहले div का उपयोग करें।

var newDiv=$("<div class='new_div'><b>some text</b></div>"); 

newDiv.appendto('#test-append'); 

newDiv.click(function(){ do somthing here }); 
+0

मैंने कोशिश की लेकिन यह काम नहीं किया, क्या आपने कोशिश की? –

3

आप तत्व संलग्न कर सकता है, फिर उसे चुनने के रूप में यह मूल चयन के चाइल्ड तत्व हो जाएगा:

$('#test-append').append("<div class='new_div'><b>some text</b></div>").children('.new_div').click(...); 

या आप .appendTo() जो तत्व (रों) संलग्न कर देता है इस्तेमाल कर सकते हैं, लेकिन यह भी रहता है उन्हें चुना:

$("<div class='new_div'><b>some text</b></div>").appendTo('#test-append').click(...); 

या के रूप में दूसरों ने कहा है आप एक चर में तत्व के लिए संदर्भ बचाने के लिए और उसके बाद ELEM हेरफेर करने के लिए बाद में है कि चर का उपयोग कर सकते हैं ईएनटी:

var $element = $("<div class='new_div'><b>some text</b></div>").appendTo('#test-append'); 
$element.click(...);//but you could have just chained the call like the previous example 
+0

कई घंटों के डिबगिंग के बाद मैंने कुछ ऐसा नहीं किया जो ".appendTo() है जो तत्व को जोड़ता है लेकिन उन्हें भी चुना जाता है"। जैस्पर तुमने वास्तव में मेरा दिन बचा लिया! –

0

विधि शायद यह अनुशंसित नहीं है ... लेकिन यह काम करता है (jQuery 2.1.3)

$('.current_element').append("<div class='future_element'><b>some text</b></div>").find('.future_element').click(function(){ 
    console.log('you can see me if you click appended element'); 
}); 

और संस्करण जब हम क्लिक पर तत्व संलग्न

$('.current_element').click(function(){ 
    $('body').append("<div class='future_element'>anything</div>"); 
    $('.future_element').click(function(){ 
     $(this).text('do something with appended element'); //for example 
    }); 
}); 
संबंधित मुद्दे