| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 | | import { once, on } from 'element-ui/src/utils/dom'; |  |   |  | export default { |  |   bind(el, binding, vnode) { |  |     let interval = null; |  |     let startTime; |  |     const handler = () => vnode.context[binding.expression].apply(); |  |     const clear = () => { |  |       if (Date.now() - startTime < 100) { |  |         handler(); |  |       } |  |       clearInterval(interval); |  |       interval = null; |  |     }; |  |   |  |     on(el, 'mousedown', (e) => { |  |       if (e.button !== 0) return; |  |       startTime = Date.now(); |  |       once(document, 'mouseup', clear); |  |       clearInterval(interval); |  |       interval = setInterval(handler, 100); |  |     }); |  |   } |  | }; | 
 |