2012-03-28 84 views
0

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

+0

熟悉window.setTimeout(funcName,milliseconds),您可以在其中调用函数,该函数在2000ms之后启用按钮。 – Daxcode 2012-03-28 19:24:53

回答

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

window.setTimeoutMDN

执行代码段或功能指定后的延迟。

+1

纠正我,如果我错了,但由于'disabled'是一个属性,而不是一个属性,很确定你可以(也应该)使用'true'和'false'作为值。 – 2012-03-28 19:30:04

+0

@ Xeon06。这是新规格,对于HTML5,如果我没有错,你是对的。 Updted。 – gdoron 2012-03-28 19:31:01

+0

谢谢大家的反馈意见,非常有帮助,因为我试图扩大我的js知识。 – need2nobasis 2012-03-28 20:14:53

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. 内联事件是不够好
+0

虽然他是初学者,但您不必**写内联脚本...... :) – gdoron 2012-03-28 19:28:47

+0

我刚刚对使用内联事件处理程序发表评论。 [好](http://okayface.com/) – 2012-03-28 19:29:08

1

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

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

Live example

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>