使用setTimeout()更改文本

时间:2013-01-30 15:39:09

标签: javascript settimeout innerhtml

基本上我要做的是点击一个链接,让它改变,然后单独改变回来。下面是我正在使用的当前代码。这段代码在这里找到,但我找不到如何将setTimeout()添加到函数中。

function changeText(idElement) {
var element = document.getElementById('element' + idElement);
if (idElement === 1) {
    if (element.innerHTML === 'Request') element.innerHTML = 'Request Submitted!';
    else {
        element.innerHTML = 'Request';
    }
  }
}

现在,这是允许他们点击该链接,将其更改为“请求已提交!”然后再次单击它将其更改回“请求”。我怎么能在它上面放一个计时器让它自动切换回'Request'?

谢谢!

1 个答案:

答案 0 :(得分:0)

function changeText (idElement, reset) {
    var element = document.getElementById('element' + idElement);
    if (idElement === 1) {            
        var newText = (element.innerHTML === 'Request' && !reset) ? 'Request Submitted!' : "Request";
        element.innerHTML = newText; 
        if (element.timer) {
            window.clearTimeout(element.timer);
        }
        if (newText !== 'Request') {
            element.timer = window.setTimeout( function(){ changeText(idElement, true); }, 1000); };   
        }
    }
}