2013-02-27 19 views
12

के लिए परिवर्तन ईवेंट को ट्रिगर करने के लिए कैसे करें रीसेट बटन पर क्लिक करने से पहले मैं चुनिंदा (ड्रॉपडाउन सूची) में "कंपनी" चुनता हूं। रीसेट पर क्लिक करने के बाद सामान्य रूप से ईवेंट होता है। मैं फिर से "कंपनी" चुनता हूं लेकिन ड्रॉपडाउन सूची में ईवेंट change नहीं होता है।चुने गए (jQuery)

क्या कोई मुझे बता सकता है कि रीसेट बटन पर क्लिक करने के बाद ड्रॉपडाउन सूची के लिए परिवर्तन ईवेंट कैसे ट्रिगर करें और फिर एक ही तत्व? रीसेट बटन के लिए

$("#mainMenu").change(function(e){ 
    e.preventDefault(); 
    loadFirstManu(true); 
}); 

कोड::

कोड मैं अब तक है

$("#btn_reset").click(function() { 
    CKEDITOR.instances.ckeditor.setData(''); 
    $('.mchosen').each(function() { 
    $(this).val('').trigger('liszt:updated'); 
    $('#submenu').attr('disabled', 'disabled').html(''); 
    $('#secondsubmenu').attr('disabled', 'disabled').html(''); 
    $('#s-menu').removeClass('required').html(''); 
    $('#secondsubmenu').removeClass('validate[required]'); 
    $('#tabmenu').attr('disabled', 'disabled').html(''); 
    $('#tab').removeClass('required').html(''); 
    }); 

});

उत्तर

19

यह मैं क्या पता लगा है:

$('#my-select').val(5).trigger("liszt:updated") 

liszt:updated चुना बजाय उपयोग के नए संस्करण में काम नहीं रह गया है नीचे Alexandru Cojan's जवाब घटना चुना के नए संस्करण के लिए

trigger("chosen:updated"); 
+23

ट्रिगर अब चुना गया है: अपडेट किया गया "' – Johannes

+1

धन्यवाद संशोधन। 1.0 के लिए यह नया ट्रिगर नाम सम्मेलन है, जैसा कि [चेंज नोट्स] में बताया गया है (https://github.com/harvesthq/chosen/releases/tag/1.0.0)। – arvidkahl

0

अगर यह आपके मामला है या नहीं, लेकिन अपने कोड के ऊपर काम करना चाहिए मैं नहीं जानता,

$("#mainMenu").change(function(e){ 
     e.preventDefault(); 
     loadFirstManu(true); 
    }); 

लेकिन कृपया ध्यान दें कि "परिवर्तन" घटना सबसे ब्राउज़रों पर तब होता है जब आप unfocus का चयन इनपुट

तो जब आप रीसेट, बस रीसेट कार्रवाई onchange शुरू हो रहा है निष्पादित करने से पहले क्लिक करें।

अब कर सकते हैं चयन परिवर्तित करने के बाद चयन इनपुट के बाहर क्लिक करने का प्रयास करें और देखें कि यह अभी भी काम करता है या नहीं

+0

ईवेंट रीसेट बटन पर क्लिक करने से पहले होता है, इसके बाद मैं उस तत्व का चयन करता हूं जिसे मैंने रीसेट करने से पहले चुना है, यह कोई घटना नहीं होती है। – Leo

+0

चूंकि, मुझे आपके एचटीएमएल/कोड की संरचना नहीं पता है, इसलिए आप कुछ चेतावनी ("ट्रिगर") जोड़ सकते हैं; में ।बदलें() फ़ंक्शन जिसे आप यह जानने के लिए उपयोग कर रहे हैं कि त्रुटि रीसेट के बाद – Shehabix

+0

त्रुटि कहां है और क्लिक रीसेट ईवेंट से पहले एक ही तत्व नहीं होता है, मैंने घटना का पता लगाने के लिए चेतावनी ("हैलो") भी डाली है या अंततः नहीं होती है। – Leo

0

शायद तुम .on का उपयोग कर प्रयास करना चाहिए, अपने $ के रूप में ('# mainmenu') कहीं परिवर्तित हो सकती है (उदाहरण के बिना मत कहो)। ऐसा करने का प्रयास करें:

$("body").on('change','#mainMenu',function(){ 
    ... 
}); 

या "भारी" शरीर के बजाय किसी भी माता-पिता चयनकर्ता

0

अगर मैं तुम्हें समझने के लिए गलत नहीं हूँ तो आप रीसेट बटन पर क्लिक करने के बाद घटना परिवर्तन ट्रिगर करते हैं। आप बस अपने कोड के लिए एक लाइन जोड़ कर ऐसा कर सकते हैं // कोड

 $("#btn_reset").click(function(){ 
     // your code here 
     $("#mainMenu").trigger('change'); 
     //you can write this as per your requirements ie. at start or end. 

     }); 
7

सुझाव के रूप में "चुना जाता है: updat .trigger('chosen:updated') पर्याप्त है - एड "

$(selector).trigger("chosen:updated") 
4

तो मैं बस में चुनिंदा चुना मूल्य ताज़ा करने के लिए की जरूरत है। लेकिन अगर मैंने हैंडलर बदल दिया है और इसे कॉल करना चाहते हैं - मुझे .trigger('chosen:updated').change()

+0

यह मेरे लिए काम किया !! – AndeeC

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