File tree Expand file tree Collapse file tree 1 file changed +20
-10
lines changed
Expand file tree Collapse file tree 1 file changed +20
-10
lines changed Original file line number Diff line number Diff line change @@ -2,23 +2,33 @@ import { once, on } from 'element-ui/src/utils/dom';
22
33export default {
44 bind ( el , binding , vnode ) {
5- let interval = null ;
6- let startTime ;
5+ const DELAY = 300 ;
6+ const INTERVAL = 100 ;
7+ let intervalTimer = null ;
8+ let delayTimer = null ;
79 const handler = ( ) => vnode . context [ binding . expression ] . apply ( ) ;
810 const clear = ( ) => {
9- if ( Date . now ( ) - startTime < 100 ) {
10- handler ( ) ;
11- }
12- clearInterval ( interval ) ;
13- interval = null ;
11+ clearInterval ( intervalTimer ) ;
12+ clearTimeout ( delayTimer ) ;
13+ intervalTimer = null ;
14+ delayTimer = null ;
1415 } ;
1516
1617 on ( el , 'mousedown' , ( e ) => {
1718 if ( e . button !== 0 ) return ;
18- startTime = Date . now ( ) ;
19+
20+ handler ( ) ;
1921 once ( document , 'mouseup' , clear ) ;
20- clearInterval ( interval ) ;
21- interval = setInterval ( handler , 100 ) ;
22+ clearInterval ( intervalTimer ) ;
23+
24+ if ( delayTimer ) {
25+ clearTimeout ( delayTimer ) ;
26+ }
27+
28+ delayTimer = setTimeout ( ( ) => {
29+ intervalTimer = setInterval ( handler , INTERVAL ) ;
30+ delayTimer = null ;
31+ } , DELAY ) ;
2232 } ) ;
2333 }
2434} ;
You can’t perform that action at this time.
0 commit comments