Temporizadores JavaScript não funcionam! (setTimeout & setInterval)[RESOLVIDO]

3 respostas
bronx

Olá a todos!
Tenho a seguinte situação: enquanto o usuário estiver com o mouse clicado, quero que uma função seja executada.

O que fiz: no onmousedown, chamei a função que quero que seja executada. No final dela, eu uso um temporizador para que o resultado possa ser notado pelo usuário.
Para que ela pare, no onmouseup eu simplesmente chamo a função clearTimeout…

O seguinte código funcionava:

HTML:

<div style="position:absolute; top: 500px; left: 500 px; background-color: rgb(220,245,245); z-index: 3;" onmouseover="this.style.cursor = 'pointer';" onmousedown="move();" onmouseup="clearTimeout(timer);">Teste</div>

JS:

var timer;

function move(){

	selecionaFace();
}


function selecionaFace(){
	//minha lógica aqui!
	timer = setTimeout("selecionaFace()",10);
}

Contudo, alterei o código e o temporizador não executa a função! Aliás, nem espera o tempo determinado:

HTML:

<div style="position:absolute; top: 500px; left: 500 px; background-color: rgb(220,245,245); z-index: 3;" onmouseover="this.style.cursor = 'pointer';" onmousedown="moveFirstPoint('counter-clockwise');" onmouseup="clearTimeout(timer);">Teste</div>

JS:

function moveFirstPoint(direction){
	setDirectionFirstPoint(direction);
	drawPoints();
	var target = "moveFirstPoint(" + direction + ")";
	timer = setTimeout(target,2000);
}

Alguém já passou por algo semelhante?

3 Respostas

bronx

Descobri que o temporizador funciona, desde que eu não atribua o seu id a nenhuma variável!

Assim funciona:

setTimeout("selecionaFace()",10)

Assin não (=S):

timer = setTimeout("selecionaFace()",10)

Anyone???

bronx

Resolvi!

O problema era que para passar parâmetros ao meu método, esse parâmetro deve ser passado na chamada do setTimeout, e o nome da função deve ser utilizado sem aspas nem parênteses.

Assim funcionou:

timer = setTimeout(moveFirstPoint,10,direction);

Que seja útil a quem precisar!

G

Cara, valeu mesmo, estava tendo um problema parecido e vc me ajudou, valeu pra caraca mesmo!! :smiley: :smiley:

Criado 6 de outubro de 2009
Ultima resposta 30 de nov. de 2010
Respostas 3
Participantes 2