JQuery 1.7 के रूप में आप का उपयोग करना चाहिए jQuery.fn.on
:
$(staticAncestors).on(eventName, dynamicChild, function() {});
इससे पहले , अनुशंसित दृष्टिकोण का उपयोग करना था live()
:
$(selector).live( eventName, function(){} );
हालांकि, live()
1.7 के पक्ष में पदावनत किया गया था on()
, और 1.9 में पूरी तरह से हटा दिया गया था। live()
हस्ताक्षर:
$(selector).live( eventName, function(){} );
... निम्नलिखित on()
हस्ताक्षर के साथ प्रतिस्थापित किया जा सकता है :
$(document).on( eventName, selector, function(){} );
उदाहरण के लिए, यदि आपका पृष्ठ गतिशील रूप से वर्ग नाम के साथ तत्वों का निर्माण कर रहा था, तो dosomething
आप इस घटना को एक माता-पिता के लिए बाध्य करेंगे, जो पहले से मौजूद है (यह समस्या का केंद्र है, आपको कुछ ऐसा करने की जरूरत है, जो आपको बांधने के लिए मौजूद हो, जिसे बांधने के लिए बाध्य न हो गतिशील सामग्री), यह (और सबसे आसान विकल्प) हो सकता है document
। हालांकि ध्यान में रखना document
सबसे कुशल विकल्प नहीं हो सकता है ।
$(document).on('mouseover mouseout', '.dosomething', function(){
// what you want to happen when mouseover and mouseout
// occurs on elements that match '.dosomething'
});
कोई भी माता-पिता जो घटना के समय मौजूद है ठीक है। उदाहरण के लिए
$('.buttons').on('click', 'button', function(){
// do something here
});
पर लागू होगा
<div class="buttons">
<!-- <button>s that are generated dynamically and added here -->
</div>