欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue 指定时间内按钮点击次数限制(解决a标签不能使用disabled属性问题)

程序员文章站 2022-07-05 11:06:33
...

vue 指定时间内按钮点击次数限制

(解决a标签不能使用disabled属性问题)

说明

为实现控制按钮点击次数,需要使用setTimeout函数,其次因为是在这里的背景是在vue项目之中,直接使用vue的自定义属性的方法;如果是在jquery项目中,也可以使用该方法,只是配置方法需要改动下

步骤

1、定义一个js,用于定义自定义属性及其点击次数控制方法
注:
1)因为a标签中没有disabled属性,所以使用disabled来控制会不生效,所以这里替换成了使用pointer-events属性,它的作用是让元素的点击事件失效;如果无需在a标签上使用,建议用disabled属性
2)这里定义的onceClick就是自定义的属性名,采用驼峰命名法,使用属性名时将驼峰转换为中划线,并加上v,如“v-once-click”

export default {
    install (Vue) {
      // 防止重复点击 在前端元素中添加 v-prevent-click属性
      Vue.directive('onceClick', {
        inserted (el, binding) {
          el.addEventListener('click', () => { 
            if (el.style.pointerEvents === '') { 
             // el.disabled = true; 
              el.style.pointerEvents = 'none';   // 防止a标签
              setTimeout(() => {  
                el.style.pointerEvents = '';
                //el.disabled = false;
                // 这里设置的3秒不可重复点击
              }, 3000);
            }
          })
        }
      })
    }
  }

2、在main.js中声明

import onceClick from './services/ClickOnce.js'
Vue.use(onceClick)

3、在具体元素中部署
只需要添加上‘v-once-click’属性即可

<el-link  
          :underline="false"
          @click="save" 
          v-once-click
          ><i class="el-icon-document-checked"></i><span>保存</span></el-link