2012-06-02 9 views
12

मेरे पास एक jquery मोबाइल खोल पृष्ठ है, जिसे मैं अजाक्स का उपयोग करने के लिए एक फॉर्म लोड कर रहा हूं। इस फ़ॉर्म में कुछ चेकबॉक्स हैं, जिन्हें मुझे बांधना है।AJAX के माध्यम से खींचे गए तत्वों पर Jquery document.on() का उपयोग कैसे करें?

अजीब तरह, मैं यह इसलिए की तरह बटन पर सीधे श्रोता की स्थापना काम करने के लिए प्राप्त कर सकते हैं:

$('input[name="ohneiln"]').on('change', function() { 
    alert("hello"); 
    }); 

लेकिन जब मैं कभी नहीं श्रोता $(document) को श्रोता सेट और checkbox को सौंपने के लिए, कोशिश कर रहा हूँ आग:

$(document).on('change', 'input[name="ohneiln"]', function() { 
    alert("hello"); 
}); 

प्रश्न:
क्या एक घटना "डायनामिक" लो जा रहा तत्वों के लिए बाध्यकारी सेट करने के लिए सही तरीका क्या है $(document).on() का उपयोग कर अजाक्स के माध्यम से विज्ञापन किया? क्या change घटनाओं के लिए यह संभव नहीं है या मैं परेशानी में क्यों चल रहा हूं?

मदद के लिए धन्यवाद!

+1

आपकी दूसरी वाक्य रचना ठीक लग रहा है और गतिशील तत्वों के लिए काम करना चाहिए के लिए डॉक्स पढ़ें, समस्या कहीं और हो सकता है है। –

+1

ठीक काम करता है http://jsfiddle.net/7rDDA/ – Esailija

+0

@Esailija - लेकिन पेज लोड होने पर आपका इनपुट वहां होता है। मेरा नहीं है, यह अजाक्स के माध्यम से खींचा जा रहा है जब उपयोगकर्ता कुछ सामान करता है – frequent

उत्तर

11

.on() विधि जिस तरह से आप इसका उपयोग करते हैं उसके अनुसार परिवर्तन करता है। आपके पहले उदाहरण में .on() विधि bind के समान व्यवहार करती है और केवल उन तत्वों पर काम करेगी जो पहले से मौजूद हैं।

दूसरा उदाहरण कई तरीकों से .live() या delegate() जैसा व्यवहार करता है। और बाद में जोड़े गए तत्वों के लिए काम करेगा।

एक विस्तृत विवरण http://api.jquery.com/on/

+0

के साथ कोई फर्क नहीं पड़ता लिंक और स्पष्टीकरण के लिए धन्यवाद। मान लीजिए कि मैं पहले संस्करण के साथ चिपक रहा हूं। – frequent

+0

मुझे लगता है कि आपको पहला और दूसरा उदाहरण मिला है। पहला "प्रत्यक्ष" है, दूसरा "प्रतिनिधि" है। –

+0

मुझे लगता है कि आपका दायां धन्यवाद रॉकेट :) – codaniel

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