目录

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
很酷爱学习1 分钟前
谈谈对this对象的理解?以及this指向的问题
javascript
胖头坨1 分钟前
渐深学习中,让解构成立引发的思考
前端·javascript·面试
胖头坨1 分钟前
浅读原型链~
前端·javascript·面试
Virtuoso3 分钟前
【2025春第5节课】jest测试
前端
爱趣五科技3 分钟前
H5DS编辑器教程——企业级雪花特效开发指南
前端·安全·编辑器·音视频
Mintopia3 分钟前
Three.js 中 DirectionalLight API 深度解析与实践
前端·javascript·three.js
Moment4 分钟前
别再被 JavaScript 类型困扰了!深入剖析 toString.call() 与 Symbol.toStringTag 的秘密
前端·javascript·面试
很酷爱学习4 分钟前
call、apply、bind的区别?如何实现一个bind?
javascript
Mintopia6 分钟前
深入理解 Node.js 的事件驱动机制
前端·javascript·node.js
呱呱复呱呱7 分钟前
Sass中的颜色函数
前端