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

相关推荐
欣然~12 小时前
法律案例 PDF 批量转 TXT 工具代码
linux·前端·python
一个小废渣12 小时前
Flutter Web端网络请求跨域错误解决方法
前端·flutter
鸣弦artha13 小时前
Flutter框架跨平台鸿蒙开发——Extension扩展方法
android·javascript·flutter
符文师13 小时前
css3 新特性
前端·css3
ct97814 小时前
WebGL开发
前端·gis·webgl
C_心欲无痕14 小时前
前端页面渲染方式:CSR、SSR、SSG
前端
果粒蹬i14 小时前
生成式 AI 质量控制:幻觉抑制与 RLHF 对齐技术详解
前端·人工智能·easyui
筱歌儿14 小时前
TinyMCE-----word表格图片进阶版
开发语言·javascript·word
Ama_tor15 小时前
obsidian进阶の插件系列|Templater从小白到菜鸟
javascript·markdown·插件·obsidian
WordPress学习笔记15 小时前
解决Bootstrap下拉菜单一级链接无法点击的问题
前端·bootstrap·html