2012-07-20 23 views
6
इसके बजाय $('.element').toggle(function(){}, function(){});

का उपयोग कर रहा तत्व मैं पर .toggle() उपयोग करना चाहते हैं पर .on() विधि का उपयोग करने की आवश्यकता होगी, लेकिन मैं कैसे मेरी दूसरी ईवेंट हैंडलर समारोह निर्दिष्ट करने के लिए को समझ नहीं सकता की

मुझे अपने टॉगल ईवेंट के लिए दूसरा हैंडलर फ़ंक्शन निर्दिष्ट करना होगा?

मैंने यह यहां किया: http://jsfiddle.net/D33f4/ लेकिन पहले क्लिक पर कुछ भी नहीं होता है। मैं वास्तव में समझ में नहीं आता क्यों।

+0

संभावित [डुप्लिकेट] (http://stackoverflow.com/questions/2172614/using-jquery-live-with-toggle-event)। – Engineer

+0

अगर मैं इसे सही तरीके से प्राप्त करता हूं, तो आप टॉगल पर करने की कोशिश कर रहे हैं? –

+0

मैंने इसे यहां किया: http://jsfiddle.net/D33f4/ लेकिन पहले क्लिक पर कुछ भी नहीं होता है। मैं वास्तव में समझ में नहीं आता क्यों। कोई उपाय? – Vincent

उत्तर

6

केवल टॉगल का उपयोग करने का प्रयास करें।

$('#clickme').toggle(
    function(){alert('click 1');}, 
    function(){alert('click 2');} 
); 

जैसा कि यह है, यह पहले क्लिक पर कुछ भी नहीं करता है क्योंकि यह केवल उस बिंदु पर ईवेंट हैंडलर को जोड़ रहा है।

संपादित करें:

मैंने पोस्ट पूरी तरह से पढ़ा नहीं है। मेरी गलती।

$('body').on('click', '#clickme', function() 
{ 
    var state = $(this).data('state'); 


    switch(state){ 
     case 1 : 
     case undefined : alert('click 1'); $(this).data('state', 2); break; 
     case 2 : alert('click 2'); $(this).data('state', 1); break; 
    } 
}); 
+0

उत्तर पर वह $ ('। Element') का उपयोग करने के बजाय 'टॉगल (फ़ंक्शन() {}, फ़ंक्शन() {}); ' –

+0

हाँ, मेरा बुरा। मैं सीधे jsfiddle –

+0

पर धन्यवाद, धन्यवाद, मुझे पहले क्लिक पर कुछ भी क्यों नहीं हुआ, इसकी कमी है। हालांकि, मैं बहुत हैरान हूं कि उपयोग करने का कोई तरीका नहीं है। टॉगल और एक साथ। क्या मै गलत हु? – Vincent

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