javascript - Events triggered by dynamically generated element are not captured by event handler -
मेरे पास & lt; div & gt;
साथ id = "modal" JQuery के साथ गतिशील रूप से जेनरेट किया गया
load ()
विधि:
$ ('# modal')। लोड ('हैंडलर / वर्ड। एडिट। Php');
word.edit.php
में कुछ इनपुट तत्व होते हैं, जो कि मॉडल & lt; div & gt;
में लोड होते हैं।
jQuery के keyup
पद्धति का उपयोग करके मैं एक ईवेंट आग के बाद इनपुट मानों को कैप्चर कर सकता हूं, लेकिन जब तत्वों को डायनामिक रूप से मॉडल डिवा में जोड़ दिया जाता है, तो जब कोई उपयोगकर्ता अपना पाठ दर्ज करता है
कौन सा jQuery विधि गतिशील रूप से निर्मित तत्वों द्वारा ट्रिगर करने वाली हैंडलिंग इवेंट का समर्थन करती है?
नए इनपुट तत्वों को बनाने के लिए कोड है:
$ ('# क्लिक करें (कार्य () {$ ('& lt; इनपुट आईडी =' '+ i +' "प्रकार =" टेक्स्ट "नाम =" अनुवाद "+ i + '" / & gt;') .appendTo ('# modal ');
उपयोगकर्ता के मूल्यों को कैप्चर करने के लिए कोड है:
$ (' input ')। कुंजीप (फ़ंक्शन () {हैंडलर = $ ( यह) .वल (); नाम = $ (यह) .attr ('name');
यह दूसरा कोड ब्लॉक मूल तत्वों के लिए काम करता है, लेकिन इसे निकाल नहीं दिया जाता है नए गतिशील रूप से उत्पन्न तत्व।
आपको पेज के भीतर सबसे नज़दीकी स्थैतिक पूर्वज तत्व की आवश्यकता है (यह भी देखें)। यह बस इसका अर्थ है, जिस तत्व को आप अपने ईवेंट हैंडलर को बाध्य करते हैं, वह उस समय पहले से मौजूद है होना चाहिए, जब हेन्डलर बाध्य है, इसलिए गतिशील रूप से जेनरेट किए गए तत्वों के लिए आपको इवेंट को बुलबुला ऊपर और इसे आगे बढ़ाए जाने की अनुमति देनी होगी। / P>
jQuery विधि ऐसा करने का तरीका है (या jQuery के पुराने संस्करणों के लिए।)
// अगर संस्करण 1.7 या इसके बाद के संस्करण $ ('# modal')। ('कुंजीप', 'इनपुट', फ़ंक्शन () {हेन्डलर = $ (यह) .val (); नाम = $ (यह) .attr ('name');});
या पुराने संस्करणों में
// अगर संस्करण 1.6 या नीचे से // नोट चयनकर्ता और घटना ऊपर $ ('#' से भिन्न क्रम में हैं प्रतिनिधि '(इनपुट', 'कुंजी', फ़ंक्शन) (हैंडलर = $ (यह) .val (); नाम = $ (यह) .attr ('name');});
Comments
Post a Comment