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:

var MouseHold = false;

window.addEventListener("mousedown", MouseDown, false);	
window.addEventListener("mouseup", MouseUp, false);

MouseDown = function ( e ){
	
	switch (e.which) {
		case 1:
			MouseHold = true;
			Objektum.funkcio();
		break;	
	}
};

MouseUp = function ( e ){
	
	switch (e.which) {
		case 1:
			MouseHold = false;
		break;		
	}
};

Objektum.funkcio = function (){

	console.log("xd lol");
	
	if( MouseHold === true ){
	
		setTimeout( function () { Objektum.funkcio(); }, 250);
	}
}
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:
var Objektum, MouseDown, MouseUp, t;

Objektum = {};

Objektum.funkcio = function () {
    console.log("xd lol");
    t = setTimeout(function () {
        Objektum.funkcio();
    }, 250);
};

MouseDown = function (e) {
    switch (e.which) {
        case 1:
            Objektum.funkcio();
            break;
    }
};

MouseUp = function (e) {
    switch (e.which) {
        case 1:
            clearTimeout(t);
            break;
    }
};

window.addEventListener("mousedown", MouseDown, false);
window.addEventListener("mouseup", MouseUp, false);
2

köszi

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