自定义指令v-preventReClick防止按钮被重复点击

150 阅读1分钟

在一段时间内,按钮被点击后将按钮禁用

//自定义指令-防止按钮重复点击
import Vue from 'vue'
import { Message } from 'element-ui'
// 在vue上挂载一个指量 preventReClick
const preventReClick = Vue.directive('preventReClick', {
  inserted: function (el, binding) {
    el.addEventListener('click', () => {
      if (!el.disabled) {
        el.disabled = true
        // Message.warning('请勿重复点击')
        setTimeout(() => {
          el.disabled = false
        }, binding.value || 1000)
        //binding.value可以自行设置。如果设置了则跟着设置的时间走
      }
    })
  }
});
export { preventReClick }

在main.js中引入

import preventReClick from '@/components/Function/preventReClick'

页面使用:

   <el-button @click="searchOk" v-preventReClick  type="primary">搜索</el-button>
  //自定义时间
     <el-button @click="searchOk" v-preventReClick='2000'  type="primary">搜索</el-button>