ugrás a tartalomhoz

Mouse Event Probléma

elek9914 · 2015. Feb. 22. (V), 10.54
Sziasztok!

Kérném a segítségetek a következőben:
  1. var MouseHold = false;  
  2.   
  3. window.addEventListener("mousedown", MouseDown, false);   
  4. window.addEventListener("mouseup", MouseUp, false);  
  5.   
  6. MouseDown = function ( e ){  
  7.       
  8.     switch (e.which) {  
  9.         case 1:  
  10.             MouseHold = true;  
  11.             Objektum.funkcio();  
  12.         break;    
  13.     }  
  14. };  
  15.   
  16. MouseUp = function ( e ){  
  17.       
  18.     switch (e.which) {  
  19.         case 1:  
  20.             MouseHold = false;  
  21.         break;        
  22.     }  
  23. };  
  24.   
  25. Objektum.funkcio = function (){  
  26.   
  27.     console.log("xd lol");  
  28.       
  29.     if( MouseHold === true ){  
  30.       
  31.         setTimeout( function () { Objektum.funkcio(); }, 250);  
  32.     }  
  33. }  
Ugye itt az lenne a lényeg, hogy kattintáskor egyszer, lenyomva tartáskor ismétlődően futna le az Objektum.funkcio()

A valóságban azonban kattintáskor is legalább 2x fut le, pedig a MouseUp event false ra állítja a MouseHold változót. Nyomva tartáskor rendben ismétel.
 
1

Próbáld ki így, most csak 1x

asam9 · 2015. Feb. 22. (V), 11.27
Próbáld ki így, most csak 1x fut le kattintásra:
  1. var Objektum, MouseDown, MouseUp, t;  
  2.   
  3. Objektum = {};  
  4.   
  5. Objektum.funkcio = function () {  
  6.     console.log("xd lol");  
  7.     t = setTimeout(function () {  
  8.         Objektum.funkcio();  
  9.     }, 250);  
  10. };  
  11.   
  12. MouseDown = function (e) {  
  13.     switch (e.which) {  
  14.         case 1:  
  15.             Objektum.funkcio();  
  16.             break;  
  17.     }  
  18. };  
  19.   
  20. MouseUp = function (e) {  
  21.     switch (e.which) {  
  22.         case 1:  
  23.             clearTimeout(t);  
  24.             break;  
  25.     }  
  26. };  
  27.   
  28. window.addEventListener("mousedown", MouseDown, false);  
  29. window.addEventListener("mouseup", MouseUp, false);  
2

köszi

elek9914 · 2015. Feb. 22. (V), 12.31
köszi