关于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监听键盘事件示例代码
Jul 26 Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
javascript实现五星评分功能
Nov 10 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
node Buffer缓存区常见操作示例
May 04 Javascript
基于VUE的v-charts的曲线显示功能
Oct 01 Javascript
详解JS数组方法
Nov 20 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 Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python下载图片实现方法(超简单)
2017/07/21 Python
python实现感知器
2017/12/19 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
《穷人》教学反思
2014/04/08 职场文书
财产公证书格式
2014/04/10 职场文书
环保建议书300字
2014/05/14 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
Java8中接口的新特性使用指南
2021/11/01 Java/Android
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL