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);
| });
| }
| };
|
|