2012-07-20 75 views
6

而不是使用$('.element').toggle(function(){}, function(){});jQuery on('toggle')可能嗎?

我需要使用.on()方法我想使用.toggle()的元素,但我無法弄清楚如何指定我的第二個事件處理函數:

$('body').on('toggle', '.element', function(){}); 

我在哪裏必須爲我的切換事件指定第二個處理函數?

我這樣做了:http://jsfiddle.net/D33f4/但是第一次點擊沒有任何反應。我真的不明白爲什麼。

+0

可能[duplicate](http://stackoverflow.com/questions/2172614/using-jquery-live-with-toggle-event)。 – Engineer 2012-07-20 12:05:23

+0

如果我正確地得到它,你試圖做切換? – 2012-07-20 12:15:41

+0

我在這裏這樣做了:http://jsfiddle.net/D33f4/但是第一次點擊沒有任何反應。我真的不明白爲什麼。任何想法? – Vincent 2012-07-20 12:20:34

回答

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')。toggle(function(){},function(){});' – 2012-07-20 12:29:25

+0

是的,我的不好。我直奔jsfiddle – 2012-07-20 12:30:49

+0

謝謝,我沒有得到爲什麼在第一次點擊中沒有發生任何事情的可能性。但是,我很驚訝沒有辦法使用.toggle和.on在一起。我錯了嗎? – Vincent 2012-07-20 12:47:12