2013-07-22 63 views
0

我正在尋找這個問題,但我沒有找到解決方案。我試圖創建一個代碼,當你點擊一個按鈕時會做一件事,而當你按下同樣的按鈕後再做其他事情。我試圖創建和「if-else」聲明,但我無法(不知道)如何計算點擊次數。純JS「如果stament取決於點擊次數」

的代碼是:

<button type="submit" id="btnshwmap" onClick="init()" >Show Map</button> 

而且如果其他:

function init() { 
    var click =0; 
    if (click === 0) { 
     do this 
     var click = 1; 
    } else { 
     do this 
    } 
});//end click 

基本上我想用這個例子Jquery if its the first time element is being clicked

但答案是使用jQuery我」米試圖不使用任何庫。

非常感謝!

+0

每次調用'init','click'都會重置爲'0'。 – elclanrs

回答

2

你只需要具備的功能之外的點擊計數器,在全球區域。

var click =0; 

function init() { 

    if (click == 0) { 
     //do this once 
     click = 1; 
    } else { 
     //do this every other time 
    } 
});//end click 
+0

謝謝!完美的作品。 謝謝所有的答覆! – titocalata

0

您可以嘗試通過單擊切換爲按鈕設置的值。例如:

function init() { 
    var value = document.getElementById('btnshwmap').value; 
    if (value === 1) { 
     do this 
     document.getElementById('btnshwmap').value = 2; 
    } else { 
     do this 
     document.getElementById('btnshwmap').value = 1; 
    } 
});//end click 

或者保留一個全局變量來跟蹤點擊狀態,而不是每次運行該函數時都設置它。

3

問題在於,每次調用函數時都會繼續重置click=0

我建議是這樣的:

function init() { 
    if(!init.click) { 
     // first, third, fifth etc. 
     init.click = 1; 
    ] 
    else { 
     // second, fourth... 
     init.click = 0; 
    } 
} 
+0

+1不污染全球範圍。 – Hamish