[vue] 按钮限制连点

首先我们新建一个js文件,例如 plugins.js

js 复制代码
import Vue from 'vue';
const pointDoms = []; // 使用这个指令的所有DOM对象
Vue.directive('points', {
  inserted(el, binding) {
    pointDoms.push(el); // 存储使用这个指令的DOM
    el.addEventListener('click', () => {
      // 禁用所有使用这个指令的DOM结构点击事件
      pointDoms.forEach(pointItem => {
        pointItem.style.pointerEvents = 'none';
      });
      setTimeout(() => {
        // 启动所有使用这个指令的DOM结构点击事件
        pointDoms.forEach(pointItem => {
          pointItem.style.pointerEvents = 'auto';
        });
      }, binding.value || 1500);
    });
  }
});

在main.js中自行引入

js 复制代码
import "@/assets/resource/plugins.js"; // 引入自定义指令防止连点

使用时只需要在需要点击的按钮上加上自定义的指令"v-points",例如

html 复制代码
<span v-points="1000">按钮</span>
<button v-points>按钮</button>

参考:

vue按钮限制连点封装 自定义指令限制连点

相关推荐
晚安日记wanna3 分钟前
四年前端被问 Code Review90人只看得懂空格和命名
前端·面试
IPdodo_8 分钟前
curl 如何测试代理 IP?HTTP、SOCKS5 与认证参数示例
前端·网络·python·https·网络调试
honkun69 分钟前
vue 甘特图组件 vxe-gantt 配置拖拽调整任务起止日期时实时显示 Tooltip 提示
javascript·vue.js·甘特图·vxe-gantt
做前端的娜娜子9 分钟前
施工蓝图:vite.config.js —— 项目的指挥中心
前端·react native·vite
宸翰10 分钟前
解决uni-app 中 SVG 图片在 iOS 端显示模糊问题
前端·uni-app
数据掘金11 分钟前
第三方 SDK 集体故障时,你的 App 会怎样?可落地的监控与降级方案
前端
计算机毕设定制辅导-无忧学长11 分钟前
《基于SpringBoot的家政服务管理平台的设计与实现》
java·vue.js·spring boot·计算机毕业设计选题推荐·家政服务管理平台
AI分享猿21 分钟前
UI设计Prompt系列(十七):团队如何管理UI Prompt——减少产品、设计与开发之间的信息损耗
前端·prompt
资讯综合25 分钟前
2026全国云渲染网站排名 不同需求用户适配榜单
开发语言·前端·javascript
PHP实战开发录43 分钟前
PHP接口超时后为什么任务还在跑
开发语言·前端·php·开发