【发布时间】:2021-11-01 17:58:03
【问题描述】:
我有一个简单的代码,如下面的 sn-p,每当单击按钮并显示警报时都会发出警报,运行正常但有某些缺点(知道这就是 setTimeout 的工作原理)。
在这里,当您单击按钮 2、3、4 次时,只会显示多次警报。但我只希望从第一次点击开始发出 1 次警报,并忽略进一步的点击,直到第一次点击完成 3 秒。
function alertBtn() {
setTimeout(alertFunc, 3000);
}
function alertFunc() {
alert("Alert is clicked so remain alerted");
}
<button onclick="alertBtn()">Alert me</button>
是否可以使用纯 JavaScript 方式?这可能类似于 SO 使用的方法,例如我们无法在 5 秒(或其他时间)内再次发表评论,该按钮在该时间间隔内有点禁用。 5秒的障碍
【问题讨论】:
-
如何使用帮助程序来绑定点击处理程序,例如 lodash 的
before()? -
您可能必须在 setTimeout() 回调中完成所有剩余的 javascript。
-
@EliranMalka 是否可以使用纯 JavaScript 停止调用该函数,直到第一次点击时间完成。
-
@user1599011 不明白你的意思。你能详细说明一下吗
-
能否在超时结束前禁用按钮?
标签: javascript function settimeout