• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

infopc

[Resolvido] função onclick

4 mensagens neste tópico

boas

tenho este codigo

img.style.cursor = 'pointer';
img.onclick = teste;

function teste()
{
alert ('teste');
}

se tiver assim tudo bem so quando clico na imagem mostra o alert.

se tiver assim

img.style.cursor = 'pointer';
img.onclick = teste(teste);

function teste (var qq)
{
alert (qq);
}

mostra o alert sem eu carregar

ajuda please!!!!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente não percebo  :thumbsup:

Supostamente falta-te o () no primeiro exemplo mas não percebo porque ele aparece sem clicar :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

suponho que aqui:

...
img.onclick = teste(teste);
...

uma vez que tas a passar como argumento "teste", que sem as aspas corresponde ao nome da função, o parser ta a chamar logo a função teste(); para saber o resultado dela, para depois (quando for click) chamá-la novamente, ja com o resultado da primeira chamada como argumento... Digo eu, assim com os nervos...

Resumindo, coloca lá isto:

img.onclick = teste("teste");

ou entao outra coisa qualquer como argumento (com as aspas), que já deve dar o resultado pretendido. Ah, e na declaração da função, não ponhas

function teste(var qq)

experimenta por só

function teste(qq)

é a forma correcta de declarar funções (o que não quer dizer que não possa funcionar como tens).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda ja cheguei a solução a solução passa por nao atribuir directamente a função teste ao evento logo ficamos com isto:

fnction qquer(){
var var1 = function(){teste ('resulta')};
img.onclick = var1;
}

function teste(teste){
alert (teste);
}

obrigado a todos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora