每秒定时器几秒钟

时间:2014-09-26 03:22:59

标签: javascript

我正在尝试使用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”秒,但它不起作用。

2 个答案:

答案 0 :(得分:1)

我使用setInterval

实现了您想要的相同功能

http://jsfiddle.net/wgy3wntm/

答案 1 :(得分: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);

}