本文共 1495 字,大约阅读时间需要 4 分钟。
方法一:
1.common.js
首先引入Vueimport Vue from 'vue';const preventReClick = Vue.directive('preventReClick', { inserted: function (el, binding) { el.addEventListener('click', () => { if (!el.disabled) { el.disabled = true setTimeout(() => { el.disabled = false }, binding.value || 3000) } console.log(el.disabled) }) }}); export { preventReClick}2.在需要引入的页面引入(**.vue) 在按钮上添加v-preventReClick
确定
从common.js导入指令preventReClick
import preventReClick from '../common' //防多次点击,重复提交
方法二:
新建`plugins.js`
export default { install (Vue) { // 防重复点击(指令实现) Vue.directive('preventReClick', { inserted (el, binding) { el.addEventListener('click', () => { if (!el.disabled) { el.disabled = true setTimeout(() => { el.disabled = false }, binding.value || 3000) } }) } }) }}
在main.js引用
按钮调用直接加v-preventReClick
方法三:
1.创建一个clickStatefrom.js文件
写上vue 全局指令//clickStatefrom.js文件export default { install (Vue) { // 防止重复点击 Vue.directive('preventClick', { inserted (el, binding) { el.addEventListener('click', () => { if (!el.disabled) { el.disabled = true setTimeout(() => { el.disabled = false }, 6000) } }) } }) } }2.在main.js 入口文件引用
import preventClick from './utils/clickStatefrom' // 根据自己的路径Vue.use(preventClick)
3.然后就可在全局使用了
转载地址:http://tlwlz.baihongyu.com/