关于javascript中限定时间内防止按钮重复点击的思路详解


Posted in Javascript onAugust 16, 2016

前面的话

有一天心血来潮,1分钟内重复点击了多次博客园首页的刷新博文列表的刷新按钮。果不其然,ip当时就被禁用了。后来,重启自己的路由器,重新获取ip才可以访问博客园主页。那么,设置一个限定时间内(比如1秒)防止按钮被重复点击的方法会不会更好一点呢?

思路一

最直接的思路可能就是点击按钮后,按钮的事件绑定函数解绑,1s后重新绑定函数

<button id="btn">0</button>
<script>
btn.onclick = function add(){
  btn.innerHTML = Number(btn.innerHTML) + 1;  
  btn.onclick = null;
  clearTimeout(timer);
  var timer = setTimeout(function(){
    btn.onclick = add;
    },1000);  
}
</script>

关于javascript中限定时间内防止按钮重复点击的思路详解

思路二  

另一个思路是获取并记录时间,当再次点击时,时间间隔大于1s时才有效

<button id="btn">0</button>
<script>
btn.onclick = (function(){
  var last = Date.now();
  return function(){
    var now = Date.now();
    if((now - last)>1000){
      btn.innerHTML= Number(btn.innerHTML) + 1;      
    }
    last = now;
  }
})();
</script>

关于javascript中限定时间内防止按钮重复点击的思路详解

以上这篇关于javascript中限定时间内防止按钮重复点击的思路详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js跟随滚动条滚动浮动代码
Dec 31 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
Mar 04 Javascript
JQuery中DOM事件冒泡实例分析
Jun 13 Javascript
JavaScript中判断两个字符串是否相等的方法
Jul 07 Javascript
JS实现可拖曳、可关闭的弹窗效果
Sep 26 Javascript
JS中多步骤多分步的StepJump组件实例详解
Apr 01 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
详解js常用分割取字符串的方法
May 15 Javascript
VUE写一个简单的表格实例
Aug 06 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
Node.js API详解之 console模块用法详解
May 12 Javascript
总结Node.js中的一些错误类型
Aug 15 #Javascript
自动化测试读写64位操作系统的注册表
Aug 15 #Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 #Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 #Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 #Javascript
Web安全测试之XSS实例讲解
Aug 15 #Javascript
js中获取jsp表单中radio类型的值简单实例
Aug 15 #Javascript
You might like
php连接mysql数据库代码
2009/03/10 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP反射基础知识回顾
2020/09/10 PHP
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
微信小程序保持session会话的方法
2020/03/20 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
python实现简单飞行棋
2020/02/06 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
为什么说python更适合树莓派编程
2020/07/20 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
关于赌博的检讨书
2014/01/24 职场文书
母校寄语大全
2014/04/10 职场文书
专科生就业求职信
2014/06/22 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
教师个人年终总结
2015/02/11 职场文书
致运动员的广播稿
2015/08/19 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis