2011-05-23 43 views
1

我試圖在jQuery中創建一個函數,每次點擊觸發不同的函數。 (在同一個按鈕上) - 但最多4次不同的點擊次數。觸發器jquery btn 1,2,3,4 -

首先點擊:功能1次 第二次點擊:功能2 第三點擊:功能3 四和最後點擊:功能4

這是一個圖像旋轉。 (我曾試圖啓動的東西) http://pastie.textmate.org/private/uacbnix2fjovtocks5lehq

+2

第五次點擊會發生什麼? 'toogle'應該非常接近你想要的。但是如果你不想混淆jQuery源代碼,你可以看看我編寫的插件並相應地改變它(或者改進它):https://github.com/fkling/jQuery-Function -Toggle-Plugin – 2011-05-23 13:43:19

+0

html5?如果是這樣,你可以只是增加畫布上的角度? – naveen 2011-05-23 13:47:13

+0

在第五次點擊時,我希望它回到功能1(旋轉到「正常」視圖)。 NOT html5: -/ – william 2011-05-23 13:47:32

回答

1
$(document).ready(function(){ 

var i = 1 ; 

$('#buttonid').click(function(){ 

    if(i == 1) { 
    function1(); 
    i++; 
    } 
    else if(i == 2) { 
    function2(); 
    i++; 
    } 
    else if(i == 3) { 
    function3(); 
    i++; 
    } 
    else if(i == 4) { 
    function4(); 
    i=1; 
    } 

}); 

}); 

如果我正確理解你的問題。這應該是答案。

+0

太棒了,這項工作非常完美!謝謝! – william 2011-05-23 14:08:40

+0

@william:你不覺得'toggle'更容易使用嗎?我的意思是,這是你的時間,但不要讓它變得更加複雜...... – 2011-05-23 14:10:43

+0

嗨費利克斯,是的,你說得對。我不確定我是否理解下面切換的示例。而且我有點用這個功能。 : - /但Thx爲你的幫助到目前爲止! – william 2011-05-23 14:31:05

3

看來.toggle()是你想要什麼:

綁定兩個或多個處理程序來匹配的元素,將在備用點擊執行。

,你會使用像:

$('button').toggle(func1, func2, func3, func4); 

或者給出一個替代的實現:

var funcs = [func1, func2, func3, func4]; 

$('button').click(function() { 
    var data = $(this).data(); 
    funcs[data.click_counter](); 
    data.click_counter = (data.click_counter + 1) % funcs.length; 
}).data('click_counter', 0);