[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按钮限制连点封装 自定义指令限制连点

相关推荐
search74 小时前
前端设计:CRG 3--CDC error
前端
治金的blog4 小时前
vben-admin和vite,ant-design-vue的结合的联系
前端·vscode
利刃大大5 小时前
【Vue】Vue2 和 Vue3 的区别
前端·javascript·vue.js
Lhuu(重开版5 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
荔枝一杯酸牛奶6 小时前
HTML 表单与表格布局实战:两个经典作业案例详解
前端·html
Charlie_lll7 小时前
学习Three.js–纹理贴图(Texture)
前端·three.js
yuguo.im7 小时前
我开源了一个 GrapesJS 插件
前端·javascript·开源·grapesjs
安且惜7 小时前
带弹窗的页面--以表格形式展示
前端·javascript·vue.js
摘星编程8 小时前
用React Native开发OpenHarmony应用:NFC读取标签数据
javascript·react native·react.js
GISer_Jing8 小时前
AI驱动营销:业务技术栈实战(From AIGC,待总结)
前端·人工智能·aigc·reactjs