想必很多小伙伴都遇到过一个问题:点击某个按钮时如果点击的比较快,可能会触发多次。如果查询操作影响还不大,如果是提交操作,那就会有问题了
实现原理:当用户第一次点击时使其元素不会成为鼠标事件的target,然后使用定时器在5秒后使元素重新可以点击,且该函数不会阻止元素的其他事件触发
//.btn是我全局的按钮样式基准,需替换成对应的jq对象
$(".btn").click(function(){
$(this).css('pointer-events', 'none')
setTimeout(() => {
$(this).css('pointer-events', 'auto')
}, 5000);//5秒后可继续点击
});
上面只加了雏形,还可对其进行一些有优化,比如:第一次点击后动画效果、后端代码双重验证等等