js:如何优雅的实现按钮防重复
JS 实现 如何 重复 按钮 优雅
2023-09-27 14:27:09 时间
按钮防重复一般就几个方案
- 节流
- 变量控制
我这里是优化版的变量控制,并且封装了一个 npm 包
思路
index.js
let canRun = true
const preventRepeatClick = (fn, delay, ...data) => {
if (canRun) {
fn(data)
}
canRun = false
setTimeout(() => {
canRun = true
}, delay || 500)
}
export default preventRepeatClick
使用:
import preventRepeatClick from '../index.js'
function submit() {
console.log('提交成功')
}
document.getElementById('button').onclick = () => {
preventRepeatClick(submit)
}
完美解决!
相关文章
- vue.js--基础 事件结合双向数据绑定实现todolist 待办事项 已经完成 和进行中,键盘事件
- js高级程序设计(三)基本概念
- Vue2.0 引用 exif.js 实现调用摄像头进行拍照功能以及图片上传功能
- d3.js封装文本实现自动换行和旋转平移等功能
- 一些通用的js工具类,添加自定义插件
- js键盘按钮keyCode及示例大全
- JS 实现blob与base64互转
- JS——设计模式
- js导出
- js---DOM元素节点
- JS实现悬浮移动窗口(悬浮广告)的特效
- 微信小程序如何使用pubsub-js实现组件间实时通信以及如何搭建Vant框架【npm包搭建介绍】
- js如何实现页面截图生成并分享功能,如何向后端传递
- js实现60s倒计时效果用于获取短信验证码使用
- JS函数的参数声明中用 var 与不用 var的区别
- [js插件开发教程]实现一个比较完整的开源级选项卡插件
- js实现cookie跨域功能
- 浅析js前端如何将word文档转为html:docx是怎样存储图片的、Java使用POI如何实现、前端使用Mammoth.js如何实现
- 浅析如何使用Vue + Xterm.js + SpringBoot + Websocket / Stomp + JSch 实现一个 web terminal 网页版的终端工具
- 单线程的Node.js能开发高并发服务器程序吗?
- 用JS实现加载页面前弹出模态框
- 前端必备技能:前端js禁止鼠标右键及F12禁止查看源代码
- JS实现下载的常用方案
- 安装reveal.js
- vue的响应式都用它来实现,js中强大的Object.defineProperty()方法