关于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 相关文章推荐
Json对象与Json字符串互转(4种转换方式)
Mar 27 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
js使用心得分享
Jan 13 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
关于JS 预解释的相关理解
Jun 28 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
Apr 09 Javascript
基于Vue中的父子传值问题解决
Jul 27 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
总结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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
mysql5详细安装教程
2007/01/15 PHP
php 在线打包_支持子目录
2008/06/28 PHP
PHP 判断变量类型实现代码
2009/10/23 PHP
PHP闭包函数详解
2016/02/13 PHP
Javascript Select操作大集合
2009/05/26 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
javascript中new关键字详解
2015/12/14 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
python赋值操作方法分享
2013/03/23 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python实现媒体播放器功能
2018/02/11 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python求最大值最小值方法总结
2019/06/25 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
python-地图可视化组件folium的操作
2020/12/14 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
一份报关员的职业规划范文
2014/01/08 职场文书
市场营销毕业求职信
2014/08/07 职场文书
员工工作心得体会
2019/05/07 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
千万级用户系统SQL调优实战分享
2022/03/03 MySQL