2010-08-02 11 views
10

मैं स्क्रिप्ट लोडिंग के समय मौजूद HTML तत्वों में ईवेंट कैसे बाध्य करूं?बाध्यकारी घटनाओं को अभी तक नहीं बनाया गया है DOM तत्व (jquery)

<a class="btn-remove-item" href="">link</a> 

समस्या मैं नहीं है सकते हैं बस करो:

$(document).ready(function(){ 

    $(".btn-remove-item").click(function(){ 
     this.parentNode.removeChild(this); 
    }); 
}); 

.. मुझे लगता है कि क्योंकि डोम तत्व नहीं है मेरी स्क्रिप्ट के

एक हिस्सा डोम करने के लिए इन कहते हैं वहां जब पृष्ठ पहले लोड होता है।

मुझे ईवेंट को MyClass से कैसे बांधना चाहिए?

उत्तर

22

jQuery.live() मान्य नहीं है। यहाँ स्वीकार किए जाते हैं जवाब jQuery.on() बजाय उपयोग कर रहा है:

$(document).on('click', '#btn-remove-item', function() { 
    this.parentNode.removeChild(this); 
}); 
+0

आपको अपडेट करने के लिए उत्तर देने के लिए अपडेट किया गया – babonk

+0

धन्यवाद, धन्यवाद यह, मैं अपने कोणीय उत्पन्न तत्वों पर घटनाओं को बांध सकता हूं – Dorian

1

jQuery.live() आपको जो चाहिए वह है।

$(document).ready(function(){ 

    $("a.myClass").live('click', function() { 
     this.parentNode.removeChild(this); 
    }); 
}); 

इसे बाहर का प्रयास करें: http://jsfiddle.net/mwR8g/

+1

'लाइव()' अब बहिष्कृत है। '()' का प्रयोग करें। यह उत्तर देखें: http://stackoverflow.com/a/8191450/1738090 – w3bshark

3

jQuery live() function करता है:

$("#btn-remove-item").live('click', function() { 
    this.parentNode.removeChild(this); 
}); 
+1

लाइव बहिष्कृत है, मैं इसे 'ऑन' के माध्यम से कैसे प्राप्त कर सकता हूं? –

+2

आप 'ऑन' का उपयोग कर सकते हैं, बस 'दस्तावेज़' के माध्यम से चुनें और सही तत्व प्राप्त करने के लिए 'ऑन' के चयनकर्ता तर्क का उपयोग करें। जैसे '$ (दस्तावेज़) .on ('क्लिक करें', '#someThingCreatedLater', फ़ंक्शन (ईवेंट) {... सामग्री करें ...});' – tehfoo

-1
$(document).ready(function(){ 
    $(".btn-remove-item").live('click', function() { 
     this.parentNode.removeChild(this); 
    }); 
}); 

आप लाइव उपयोग करने की आवश्यकता है।

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