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