UNPKG

597 BJavaScriptView Raw
1import { once, on } from 'element-ui/src/utils/dom';
2
3export 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 (new Date() - 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 = new Date();
19 once(document, 'mouseup', clear);
20 clearInterval(interval);
21 interval = setInterval(handler, 100);
22 });
23 }
24};