2009-05-02 13 views
17

मैं JQuery के लिए नया हूं, इसलिए मेरे साथ भालू :)।jquery नए तत्व नहीं देखता

मैं एक साधारण समस्या है:

$(document).ready(function() { 

    $("#instrument").change(function() { 
     $("#tunings").html("<select id=\"TuningSelector>\"[..]</div>"); 
    }); 

    $("#TuningSelector").change(function() { 
     DoSomethingWithTheValue(); 
     }); 

}); 

समस्या है: जब साधन बदल गया है, स्क्रिप्ट TuningSelector परिवर्तन करने के लिए अब और प्रतिक्रिया नहीं देता। JQuery की तरह नया ट्यूनिंग चयनकर्ता तत्व नहीं देखता है ...

क्या मुझे JQuery पर रीफ्रेश करने की आवश्यकता है या नहीं? ताकि यह ताज़ा डीओएम देख सके?

उत्तर

36

आम तौर पर आप on का उपयोग करना चाहते हैं ताकि यह चयनकर्ता से मेल खाने वाले नए तत्वों के लिए हैंडलर लागू हो और डोम में उच्च तत्व में प्रतिनिधि हो।

$('body').on('change', '#control', function() { 
    DoSomething(); 
}); 
+4

। लाइव ("परिवर्तन") jQuery 1.4 तक लागू नहीं किया जाएगा http://docs.jquery.com/JQuery_1.4_Roadmap#Events –

+1

@ सैम - इसे इंगित करने के लिए धन्यवाद। मैंने इसे अभी तक एक चयन के साथ उपयोग नहीं किया था और यह नहीं पता था कि समर्थित सूची में नहीं था। मेरा जवाब इस परिलक्षित करने के लिए अद्यतन किया गया है। – tvanfosson

+0

इसे पढ़ने के लिए, .live() को .on() –

2

jQuery की घटनाओं के साथ आप घटना नए तत्व को लागू करने के लिए आप .live विधि का प्रयोग करेंगे, हालांकि jQuery 1.3 कलंक, ध्यान, mouseenter, mouseleave, परिवर्तन का समर्थन नहीं करता, को लाइव घटनाओं के रूप में की घटनाओं प्रस्तुत करना चाहते हैं। (बदलें, सबमिट करें, और धुंध/फोकस roadmap पर jQuery 1.4 के लिए हैं)

वैकल्पिक रूप से आप liveQuery प्लगइन का उपयोग कर सकते हैं।

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