Onclick按钮超时javascript

时间:2012-03-28 19:22:07

标签: javascript

有人可以帮助我开始使用按钮超时功能。我想要的只是一个按钮(点击时)它会变为非活动状态2秒钟。之后再次活跃。

4 个答案:

答案 0 :(得分:1)

<input type="button" value="click" id="click" onclick="foo(this);"/>​

function foo(obj) {
    obj.disabled = true;
    setTimeout(function() {
        obj.disabled = false;
    }, 2000);
}​

LIVE DEMO

MDN上的

window.setTimeout

  

在指定的延迟后执行代码段或函数。

答案 1 :(得分:1)

开始时:

<button>Click me!</button>

添加活动:

<button onClick="...">Click me!</button>

现在我们需要代替...

this可用于表示“刚刚点击的按钮”

this.disabled可以设置为truefalse以禁用(或重新启用)按钮。

setTimeout(function() {...},2000);在两秒钟过后(或接近计时器分辨率允许)执行匿名函数。

同样,需要在...中添加一些东西。我已经告诉过你如何重新启用按钮了。

虽然,由于this在匿名函数中不是非常可靠,因此最好从var t = this;开始,并使用t来表示按钮。

有了所有这些,你就有了:

<button onClick="var t = this; t.disabled = true; setTimeout(function() {t.disabled = false;},2000);">Click me!</button>

完成。我希望这个解释很有帮助。

PS。对于那些反对内联事件处理程序的人:

  1. 这是一个例子
  2. OP是初学者
  3. 内联事件足够好

答案 2 :(得分:1)

函数setTimeout允许您在经过一定量的毫秒后指定要调用的函数。在这种情况下,我传入了一个匿名函数,即一个没有名称的函数,该函数仅用于在2秒后重新启用我的按钮。

var mybutton = document.getElementById("mybutton");
mybutton.onclick = function() {
    mybutton.disabled = true;
    setTimeout(function() {
        mybutton.disabled = false;
    }, 2000);
};​

Live example

答案 3 :(得分:0)

您可以在javascript中使用setTimeout()函数。像

这样的东西
<html>
<head></head>
<body>

<input id="test" type="submit" value = "clickme" onclick="deactivatefunc()">
<script type="text/javascript">

 function deactivatefunc()
 {
    var btn = document.getElementById("test");
    btn.disabled = true;
    var mytimer = setTimeout(activate,2000);
 }

function  activate () {
    var btn = document.getElementById("test");
    btn.disabled = false;
}
</script>
</body> 

</html>