Your Name
2022-07-05 b222b2923e4759a86ccae30a85d6653a4b4046f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { App } from 'vue'
 
export function preventClick(app: App){
    app.directive('debounce', {
        mounted(el, binding) {
            let timer : NodeJS.Timeout | null = null
            el.addEventListener('click', () => {
                debugger
                let firstClick: Boolean = !timer;
                if(firstClick){
                    binding.value
                }
                if(timer){
                    clearTimeout(timer)
                }
                timer = setTimeout(() => {
                    timer = null
                    if(!firstClick){
                        binding.value
                    }
                },3000);
            })
        }
    })
}