Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, meu problema é o seguinte, quando estou adicionando um evento a um botão, este evento chama uma função passando como parâmetro uma variável. Assim sendo, independentemente de qual botão eu clicar ele sempre vai mostrar a mesma mensagem, pois ele pega o último valor atribuído a variável.
Segue o código
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Adicionando evento</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function adicionarEvento(objeto,evento, funcao) {
try {
objeto.addEventListener(evento, funcao, true);
}
catch (e) {
try {
objeto.attachEvent('on' + evento, funcao);
}
catch (ee) {
alert('Erro: ' + ee);
}
}
}
function mostrarValor(valor)
{
alert(valor);
}
function adiciona()
{
mensagem = "Mensagem 1";
adicionarEvento(document.getElementById('m1'),'click', function() { mostrarValor(mensagem); } );
mensagem = "Mensagem 2";
adicionarEvento(document.getElementById('m2'),'click', function() { mostrarValor(mensagem); } );
}
</script>
</head>
<body>
<p>
<input name="adiconar" type="submit" id="adiconar" value="Adicionar eventos" onClick="adiciona();">
</p>
<p>
<input name="m1" type="submit" id="m1" value="Mensagem 1">
<input name="m2" type="submit" id="m2" value="Mensagem 2">
</p>
</body>
</html>Carregando comentários...