原生js实现如下效果: 一个按钮,点击它会弹出对话框,但5秒内再点击不会再弹出对话框。5秒后恢复正常。
第一种方式:
使用函数节流的方式(就是设置一个变量,来一个判断语句,判断这个变量的值。为真或假执行某些事情)
弹出框,我就用alert()了。
补充一下:
因为要用原生js实现,原生js提供的弹出框的方式(我暂时知道四种),其中有三种都是阻塞加载的。剩下一种很多浏览器已经不支持
alert() pormpt() confirm() 都阻塞加载
showModalDialog() 很多浏览器都不支持
直接撸代码(函数节流 我在这里直接叫 上锁 和开锁)
html代码:
<button>我是一个按钮</button>
javascript代码
// 设置锁
var lock = false;
var btn = document.getElementsByTagName('button')[0];
btn.onclick = function() {
if (lock) {
return;
}
// 上锁
lock = true;
alert('我是一个对话框');
setTimeout(function() {
// 开锁
lock = false;
}, 5000);
}