关于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面向对象编程之对象使用分析
Aug 19 Javascript
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
Apr 01 Javascript
如何获取select下拉框的值(option没有及有value属性)
Nov 08 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
详解用vue.js和laravel实现微信支付
Jun 23 Javascript
详解weex默认webpack.config.js改造
Jan 08 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
JavaScript实现简单计时器
Jun 22 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学习之数组值的操作
2011/04/17 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
Python实现模拟时钟代码推荐
2015/11/08 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
详解python 爬取12306验证码
2019/05/10 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Django admin组件的使用
2020/10/24 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
介绍下WebSphere的安全性
2013/01/31 面试题
存储过程的优缺点是什么
2015/01/10 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
售后服务科岗位职责范文
2013/11/13 职场文书
清扬洗发水广告词
2014/03/14 职场文书
超市收银员岗位职责
2015/04/07 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
mysql的数据压缩性能对比详情
2021/11/07 MySQL
Python基础 括号()[]{}的详解
2021/11/07 Python