2012-08-13 88 views
1

我第一次點擊,什麼都沒有。第二次,第一次警報發生兩次。第三次,第二次警報發生兩次,第一次警報發生一次。第四次,它變得更加怪異。我想我使用切換()錯誤,但我不明白。該代碼是函數之間奇怪的切換,我做錯了什麼?

<button onclick="$(this).toggle(function(){alert(1)}, function(){alert(2)})">Play</button> 

小提琴:http://jsfiddle.net/2uRKD/

謝謝!

+4

你讀過[.toggle()'的文檔嗎?](http://api.jquery.com/toggle) – Blazemonger 2012-08-13 15:01:11

+0

該死的,我正在讀這個http://api.jquery.com/toggle-event/ – Sophivorus 2012-08-13 15:03:33

+0

還有另一個切換,事件處理程序:http://api.jquery.com/toggle-event/ – jao 2012-08-13 15:03:53

回答

3

切換是一個jQuery的事件之間切換替代點擊,你不需要點擊事件綁定切換。

Live Demo

$(function(){ 

    $('button').toggle(

    function() { 
     alert(1); 
    }, 

    function() { 
     alert(2); 
    });​ 
    }); 
+0

請注意,此[切換事件](http://api.jquery.com/toggle-event/)在jQuery 1.8中已被棄用,並在1.9中完全刪除。 – AlecRust 2013-01-15 12:23:35

+1

你對未被棄用的替代品有什麼用途? – 2013-01-15 22:07:03

1

切換不用於切換2個功能。這是隱藏和顯示元素。

下面是一個例子:

http://jsfiddle.net/2uRKD/4/

+0

有兩種切換方法。其中一個*用於在兩個函數之間切換... – Chris 2012-08-13 15:35:32

1

試試這個:

HTML:

<button type="button">Play</button> 

的Javascript:

<script> 
​$(document).ready(function(){ 
    $("button").toggle(function(){alert(1)}, function(){alert(2)}) 
});​ 
</script> 

I H沒有解釋:)

1

您所使用的方法的形式是toggle event。實際上,它所做的就是綁定點擊處理程序。所以你每次點擊的時候都會把切換綁定到事件上。我不會試圖去理解你在那裏綁定的邏輯,只要說這是錯的。 :)

,你會想要做的,而不是什麼是一樣的東西:

$('.ToggleButton').toggle(function(){alert(1)}, function(){alert(2)}) 

,這應該在您的document.ready或同等去。