1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| export default {
| install(Vue) {
| Vue.directive('preventReClick', {
| inserted(el, binding) {
| el.addEventListener('click', () => {
| if (!el.disabled) {
| el.disabled = true;
| // 可以添加禁用样式(可选)
| el.style.pointerEvents = 'none';
| el.style.opacity = '0.6';
| // 设定恢复时间,binding.value 是指令传入的值(如:v-prevent-reclick="2000")
| setTimeout(() => {
| el.disabled = false;
| el.style.pointerEvents = 'all';
| el.style.opacity = '1';
| }, binding.value || 1500); // 默认1.5秒
| }
| });
| }
| });
| }
| };
|
|