2013-08-24 12 views
5

का उपयोग कर डोम हेरफेर के बाद घटनाओं को संलग्न करना AJAX प्रतिक्रिया का उपयोग कर डोम में हेरफेर करने के बाद सभी घटनाओं को कैसे संलग्न करें। मेरे पास एक AJAX अनुरोध है जो एक HTML प्रतिक्रिया प्राप्त करता है जो मूल रूप से HTML का एक टुकड़ा है। उस खंड एचटीएमएल में कई बटन हैं। मैं डोम को रीफ्रेश करना चाहता हूं ताकि पहले घोषित और संलग्न घटनाओं को उस खंड में भी लागू किया जा सके। मैं jquery() पर उपयोग करके प्रत्येक बटन के लिए प्रत्येक ईवेंट को जोड़ना नहीं चाहता हूं। यह और कैसे करें?JQuery AJAX

+0

संभव डुप्लिकेट [jQuery घटना प्रतिनिधिमंडल] (http://stackoverflow.com/questions/14679432/jquery-event-delegation) –

+0

@EvanTrimboli:

यहाँ सौंप घटना से निपटने के बारे में एक और प्रासंगिक जवाब उस का एक डुप्लिकेट नहीं है। समाधान समान हो सकता है, लेकिन सवाल एक जैसा नहीं है। – jfriend00

+0

क्या वास्तव में एक और जवाब देने की आवश्यकता है कि घटना प्रतिनिधिमंडल कैसे काम करता है? –

उत्तर

9

आप प्रतिनिधि घटना प्रबंधन का उपयोग कर सकते हैं जो समय से पहले स्थापित है और इसे नए जोड़े गए डीओएम तत्वों पर लागू करने के लिए बनाया जा सकता है। सौंपे गए घटना से निपटने .on() साथ किया जाता है और आम तौर पर का रूप ले लेता:

$("static parent selector").on('click', 'selector for dynamic element', fn); 

कोई साफ रास्ता बस फिर आपके घटना को स्थापित करने से कोड चलाने के लिए और यह केवल नए जोड़े डोम तत्वों के लिए लागू करने के लिए नहीं है। आपको उस कोड को फ़ंक्शन में रखना होगा और कोड को ऐसा करना होगा कि यह कभी भी एक ईवेंट हैंडलर को एक से अधिक बार नहीं जोड़ता है और फिर आप डोम में आइटम जोड़ने के बाद उस फ़ंक्शन को फिर से कॉल कर सकते हैं। या, आप फ़ंक्शन को मूल ऑब्जेक्ट के लिए तर्क दे सकते हैं और केवल नए जोड़े गए DOM पदानुक्रम में ईवेंट हैंडलर जोड़ सकते हैं। इस सवाल - Does jQuery.on() work for elements that are added after the event handler is created?

की
+0

यहां बताया गया लिंक यह बताता है कि jfriend00 ने अभी क्या कहा: http://api.jquery.com/on/ – Jonathan