简单 js 实现防止重复点击

防止重复点击:

 定义一个clickThrottle.js文件

/* 防止重复点击 */
let clickTimer = 0

function clickThrottle(interval = 3000) {
    let now = +new Date(); // 获取当前时间的时间戳
    let timer = clickTimer; // 记录触发事件的事件戳
	
    if (now - timer < interval) {
    	// 如果当前时间 - 触发事件时的事件 < interVal,那么不符合条件,直接return false,
    	// 不让当前事件继续执行下去
        return false;
    } else { 
    	// 反之,记录符合条件触发了事件的时间戳,并 return true,使事件继续往下执行
        clickTimer = now;
        return true;
    }
}

export default clickThrottle

+new Date()这个代码是获得当前时间的时间戳,与 new Date().getTime()new Date().valueOf() 以及 Date.now() 是一样的。

调用:

 先将防止重复点击的js文件引入;

 两种调用方式(自行看项目需求决定):

  • 1、使用防重复点击事件默认参数值3000,3秒内该事件不会继续执行下去;
// 这是一个提交事件
handleSubmit() {
	if(!clickThrottle()) return;
	// doing
	// 调用提交保存接口
}
  • 2、修改防重复点击事件默认参数值,5秒内该事件不会继续执行下去。
// 这是一个提交事件
handleSubmit() {
	if(!clickThrottle(5000)) return;
	// doing
	// 调用提交保存接口
}



如有不足,望大家多多指点! 谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuangv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值