原生js实现如下效果: 一个按钮,点击它会弹出对话框,但5秒内再点击不会再弹出对话框。5秒后恢复正常。

原生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);
        }

我这里有一个弊端,alert是阻塞加载的。所以必须是alert的对话框弹出后,关闭对话框后,再过5秒才会执行。不过题目要求也是完成了的。

发布了7 篇原创文章 · 获赞 1 · 访问量 219

猜你喜欢

转载自blog.csdn.net/qq_35898059/article/details/103603385