1.在main.js注册directives文件夹下的preventReClick.js文件
import './directives/preventReClick.js'
2.preventReClick.js文件代码如下:
import Vue from 'vue'
// 在vue上挂载一个指量 preventReClick
const preventReClick = Vue.directive('preventReClick', {
inserted: function (el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true;
el.classList.add('ret-noclick')
setTimeout(() => {
el.disabled = false
el.classList.remove('ret-noclick')
}, binding.value || 2000)
//binding.value可以自行设置。如果设置了则跟着设置的时间走
//例如:v-preventReClick='500'
}
})
}
});
export { preventReClick }
3.在vue文件使用,在有点击事件的按钮上添加v-preventReClick指令
<div
class="action iconfont iconfont-exec"
@click.stop="submitWork" v-preventReClick
></div>