2012-06-12 10 views
8

मेरे पास एक ड्रॉपडाउन मेनू है जिसे मैं किसी JQuery ईवेंट से कनेक्ट करना चाहता हूं अगर कोई उस पर क्लिक करता है लेकिन फिर उसी विकल्प का चयन करता है पहले से ही चुना गया है।एक ड्रॉप डाउन चयनित होने पर JQuery ईवेंट को आग लगाना - लेकिन मान बदल नहीं गया है

मुझे 'परिवर्तन' ईवेंट का उपयोग करके सब कुछ चल रहा है लेकिन ऐसे मामले हैं जहां उपयोगकर्ता ड्रॉपडाउन पर क्लिक करने और उसी विकल्प को संशोधित करने के लिए मान्य है। अगर ऐसा होता है तो मुझे अपने इवेंट हैंडलर को आग लगने की ज़रूरत है।

मैं यह कैसे कर सकता हूं?

+0

हमें अपने HTML और jQuery कोड कृपया – Shyju

+0

क्यों 'क्लिक' घटना का उपयोग नहीं दिखा रहा है? – Blazemonger

उत्तर

8

प्रयास करें,

.click

का उपयोग करना
$(function() { 
    var cc = 0; 
    $('select').click(function() {   
     cc++; 
     if (cc == 2) { 
      $(this).change(); 
      cc = 0; 
     }   
    }).change (function() { 
     $('#result').append('Changed triggered '); 
     cc = -1; 
    });  
}); 

डेमो:http://jsfiddle.net/skram/NAHXP/2/

या .focus और .blur का उपयोग कर

$(function() { 
    var ddVal = ''; 
    $('select').focus(function() { 
     ddVal = $(this).val(); 
    }).blur(function() { 
     if (ddVal == $(this).val()) { 
      $(this).change(); 
     } 
    }).change (function() { 
     $('#result').append('Changed triggered '); 
    });  
}); 

डेमो:http://jsfiddle.net/skram/NAHXP/

+2

दोनों jsfiddles पर मैं 'test1' पर क्लिक कर सकता हूं, फिर ड्रॉप डाउन से दूर क्लिक करें और फिर 'test1' पर क्लिक करें और संशोधित करें - और परिवर्तन ट्रिगर नहीं किया गया है। क्या आप इसका इरादा रखते हैं? मुझे ट्रिगर करने के लिए बदलाव की जरूरत है। –

4

उपयोग फोकस और कलंक की घटनाओं ...

var selectValue; 
$('select').focus(function(){ 
    selectValue = $(this).val(); 
}).blur(function(){ 
    if (selectValue == $(this).val()) { 
    //nothing change event 
    } 
}) 
2

उपयोग इस समस्या

$("#test").change(function(event){ 
if($(this).find('option:selected').hasClass('actived')) 
    alert('already selected');//write you code here 
else 
    $(this).find('option:selected').addClass('actived'); 

}); 

हल करने के लिए वर्ग जोड़ सकते हैं और इस लिंक का उल्लेख नीचे की तरह कुछ http://jsfiddle.net/muthukumar0705/nARVu/1/

+0

यदि 'परिवर्तन' घटना आग नहीं लगती है, तो क्या यह काम करता है? मेरा मुद्दा यह है कि परिवर्तन घटना फायरिंग नहीं है। –

+1

कोई बदलाव घटना के बिना काम नहीं कर रहा है। क्या आप थोड़ा और समझा सकते हैं। – MMK

+0

यदि आप कोई विकल्प चुनते हैं, तो वापस जाएं और बाद में * उसी * विकल्प का चयन करें - मुझे अभी भी आग की घटना की आवश्यकता है। –

3

लिए यहाँ क्लिक करें समाधान

है
var oldValue = null; 
$('select').click(function(){ 
    s = $(this); 
    val = s.val(); 
    if (oldValue == null) { 
     oldValue = val; 
    } else { 
     oldValue == s.val() ? alert('nothing changed') : alert('new value'); 
     $(document).unbind('click.valueCheck'); 
     oldValue = null;  
    } 
}) 

DEMO

यहाँ दस्तावेज़ क्लिक के साथ और अधिक उन्नत समाधान बढ़ाया

DEMO2

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