Erro de Argumento inválido - Primeira execucao ele faz, na segunda da erro

3 respostas
L

Bom dia pessoal, tudo bem com vcs?

estou iniciando no Java Script e, num dos meus codigos, acabo com o seguinte erro:

Mensagem: Argumento inválido.
Linha: 13
Caractere: 1
Código: 0
URI: file:///C:/Documents%20and%20Settings/WINXP/Desktop/testando.html

Eu quero que, qdo o usuario passe o mouse em cima da div, ative a funcao, executando a cada x tempo...a primeira execucao ele faz, na segunda ele apresenta o erro acima... alguem sabe de algo que possa estar acontecendo?? O codigo é esse:

<html>
<head>
<title>...</title>
</head>
<body>

<script>

function funcao(argumento){

var tempo = window.setInterval(alert(argumento),220);

}

</script>

<div id="principal" onmouseover="funcao('imprima isso')">Texto</div>

</body>

</html>

É isso ae pessoal, sera que alguem sabe pq esse erro e possa me ajudar??

Abs,

3 Respostas

S

na primeira vez funciona?

utilize a function clearInterval(); depois de setar o interval. talvez ele impessa de abrir um novo interval sem antes fechar o outro. não tenho ctza. faz um teste ai.

A

começa usando o firefox, depois instala o firebug… vai ajudar mto vc.

tira o window, e deixa somente o setInterval();

W

O primeiro argumento de setInterval deve ser uma função. Você deve passar um objeto função e não invocar uma função ali. O correto seria:

function funcao(argumento){
    window.setInterval(function() { alert(argumento); }, 220);
}

O seu código atual funciona na primeira vez pq toda vez que tu passa o mouse ele está invocando o alert. Mas após a execução do alert, o valor undefined é retornado, e é este valor que está sendo passado pro setInterval.

Abraço.

Criado 21 de fevereiro de 2012
Ultima resposta 26 de fev. de 2012
Respostas 3
Participantes 4