有人可以帮助我开始使用按钮超时功能。我想要的只是一个按钮(点击时)它会变为非活动状态2秒钟。之后再次活跃。
答案 0 :(得分:1)
<input type="button" value="click" id="click" onclick="foo(this);"/>
function foo(obj) {
obj.disabled = true;
setTimeout(function() {
obj.disabled = false;
}, 2000);
}
MDN上的 window.setTimeout
:
在指定的延迟后执行代码段或函数。
答案 1 :(得分:1)
开始时:
<button>Click me!</button>
添加活动:
<button onClick="...">Click me!</button>
现在我们需要代替...
。
this
可用于表示“刚刚点击的按钮”
this.disabled
可以设置为true
或false
以禁用(或重新启用)按钮。
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。对于那些反对内联事件处理程序的人:
答案 2 :(得分:1)
函数setTimeout
允许您在经过一定量的毫秒后指定要调用的函数。在这种情况下,我传入了一个匿名函数,即一个没有名称的函数,该函数仅用于在2秒后重新启用我的按钮。
var mybutton = document.getElementById("mybutton");
mybutton.onclick = function() {
mybutton.disabled = true;
setTimeout(function() {
mybutton.disabled = false;
}, 2000);
};
答案 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>