2014-09-26 154 views
1

我正在嘗試使用Javascript在小型遊戲上進行一些測試。我想這樣做,一個按鈕有一個超時「X」秒。我這樣做了,但它不會更新剩餘時間。計時器每秒鐘幾秒

的Javascript:

function cd(button, x) { 
    var ms = x * 1000;    //Change the seconds to Milliseconds 
    var oldValue = button.innerHTML; 

    button.setAttribute('disabled', true); 
    button.innerHTML = oldValue + " [" + x + "]"; 


    setTimeout(function(){ 
     button.innerHTML = oldValue; 
     button.removeAttribute('disabled'); 
    }, ms); 

} 

函數調用:

cd(document.getElementById("click"), 5); 

HTML:

<button type="button" id="click" onclick="cd(this)">Get a banana</button> 

我試圖將兩者結合起來,使之如此,它將每秒更新一次在使用setInterval爲「x」秒,但它不會工作。

回答

1

這是你在找什麼?

DEMO

JAVASCRIPT:

// store the oldValue here 
var oldValue = null; 

function cd(button, x) { 
    var ms = x * 1000; 

    // if you dont do this, you will get "Get a banana [5] [4] etc..." 
    if(!oldValue){ 
     oldValue = button.innerHTML; 
    } 

    button.setAttribute('disabled', true); 

    button.innerHTML = oldValue + " [" + x + "]"; 

    setTimeout(function(){ 
     // decrease x 
     x--; 
     if(x > 0){ 
      cd(button, x); 
     }else{ 
      // remove attribute 
      button.removeAttribute('disabled'); 
      // change back to oldValue 
      button.innerHTML = oldValue; 
      //reset oldValue 
      oldValue = null; 
     } 
    }, 1000); 

} 
+0

當然!讓我知道你是否需要任何東西或進一步的解釋! – Dom 2014-09-26 03:46:41

1

我已經實現了你想要的,但同樣的事情用setInterval

http://jsfiddle.net/wgy3wntm/

+0

點擊按鈕的第二時間之後。添加onclick。它每秒鐘變得活躍。有沒有解決這個問題? http://jsfiddle.net/Xearta/wgy3wntm/2/ – Xearta 2014-09-26 03:41:07