2012-08-09 14 views
12

मैं शीर्षक में निम्नलिखित है:jQuery पर <select> घटना बदलें फायरिंग नहीं

$('body').on('change', '#userFilter', function(){ 
    console.log('changed'); 
}); 

और यह तत्व गतिशील पृष्ठ पर डाला जाता है जब एक टैब क्लिक किया जाता है:

<select id="userFilter"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

समस्या है जब मैं ड्रॉपडाउन बदलता हूं तो कंसोल में कुछ भी नहीं दिखाया जाता है।

+2

मेरे लिए ठीक काम करता है: http://jsfiddle.net/KhY8s/। सुनिश्चित करें कि जब आप 'body' मौजूद है (jQuery 101) ईवेंट ईवेंट हैंडलर को बाध्य करें। [JQuery ** ट्यूटोरियल **] से (http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery#Hello_jQuery): * "jQuery ऑब्जेक्ट मॉडल (डीओएम) को पढ़ने या मैनिपुलेट करने के दौरान हम लगभग हर चीज करते हैं, हम यह सुनिश्चित करने की आवश्यकता है कि जैसे ही डीओएम तैयार हो, हम इवेंट आदि जोड़ना शुरू करें। ऐसा करने के लिए, हम दस्तावेज़ के लिए एक तैयार कार्यक्रम पंजीकृत करते हैं। "*। ऐसा क्यों लगता है कि कोई इसे पढ़ रहा है? –

+0

कृपया उत्तर का निशान लगाएं :) – Archer

+1

अन्य लोगों की मदद करने के लिए बस एक त्वरित नोट जो एक ही बेवकूफ गलती कर सकता है - सुनिश्चित करें कि आपके पास एक आकस्मिक डुप्लिकेट आईडी नहीं है, उदाहरण के लिए यदि आपके फ़िल्टर के समान आईडी के साथ एक div है , बदलाव की घटना आग नहीं जा रही है! – Steve

उत्तर

18

$(document).ready(function(){....}) में लपेट ताकि एचटीएमएल नियंत्रण userFilterjavascript

$(document).ready({ 
    $('body').on('change', '#userFilter', function(){ 
     console.log('changed'); 
    }); 
}); 

हैंडलर .ready को (पारित कर दिया) के बाद DOM तैयार होने निष्पादित करने की गारंटी है के लिए डोम को और उपलब्ध जोड़ा जाता है , इसलिए यह आमतौर पर अन्य सभी ईवेंट हैंडलर संलग्न करने और अन्य jQuery कोड, jQuery docs चलाने के लिए सबसे अच्छी जगह है।

+0

यह तय किया गया। धन्यवाद! –

+1

आपका स्वागत है – Adil

+0

मेरे पास एक अपडेटएनल के अंदर टेक्स्टएरिया है और उपरोक्त किसी कारण से मेरे लिए काम नहीं करता है:/कोई सुझाव? धन्यवाद। – SearchForKnowledge

0

हालांकि ओक्यू से थोड़ा असंबद्ध है, अगर आप यहां पहुंचे हैं क्योंकि आपका चयन फायरिंग नहीं है, तो सुनिश्चित करें कि पिछली बार आपने "इस पृष्ठ को दिखाने से रोकें ..." की जांच नहीं की alert()। आपको टैब को बंद करना होगा और उस यूआरएल को दोबारा खोलना होगा ताकि वह फिर से आग लग सके।

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