Erro em JavaScript
02/09/2019
0
Alguém me ajuda nesse código de JavaScript. O objetivo é fazer uma lâmpada acender, passando o seta do mouse na figura, apagar tirando a seta mouse da figura
quebrar a lâmpada quando clica na figura e faze-la permanecer quebrada. Só que por algum motivo ao invés da lampada quebrar quando eu clico, ela continua acesa permanentemente .
quebrar a lâmpada quando clica na figura e faze-la permanecer quebrada. Só que por algum motivo ao invés da lampada quebrar quando eu clico, ela continua acesa permanentemente .
<!DOCTYPE html> <html lang "pt-br"> <head> <title>Teste JavaScript</title> <meta charset="utf-8"> <script type="text/javascript"> var quebrada = false; function mudaLampada(tipo) { if (tipo == 1) { arquivo = "_imagens/lampada-acesa.jpg"; } if (tipo == 2) { arquivo = "_imagens/lampada-apagada.jpg"; } if (tipo == 3) { arquivo = "_imagens/lampada-quebrada.jpg"; quebrada = true; } if (!quebrada) { document.getElementById("Luz").src = arquivo; } } </script> </head> <body> <h1>Ascenda a Lâmpada</h1> <img src=_imagens/lampada-apagada.jpg id='Luz' onmousemove="mudaLampada(1)" onmouseout="mudaLampada(2)" onclick="mudaLampada(3)">
Guilherme
Curtir tópico
+ 0
Responder
Posts
02/09/2019
Sadasd
Seu problema é um erro de lógica olhe bem:
No código acima você diz que se o boolean quebrada for false você deve mudar a sua imagem para a lâmpada quebrada, mas no seu terceiro if(o qual representa a imagem da lâmpada quebrada) você muda o valor de quebrada para true, ou seja, cria uma condição na qual o código dentro do quarto if não será executado. Abaixo uma solução viável:
if (!quebrada) { document.getElementById("Luz").src = arquivo; }
No código acima você diz que se o boolean quebrada for false você deve mudar a sua imagem para a lâmpada quebrada, mas no seu terceiro if(o qual representa a imagem da lâmpada quebrada) você muda o valor de quebrada para true, ou seja, cria uma condição na qual o código dentro do quarto if não será executado. Abaixo uma solução viável:
var quebrada = false; function mudaLampada(tipo) { if(!quebrada){ switch(tipo) { case 1: document.getElementById("Luz").src = "_imagens/lampada-acesa.jpg"; break; case 2: document.getElementById("Luz").src = "_imagens/lampada-apagada.jpg"; break; case 3: document.getElementById("Luz").src = "_imagens/lampada-quebrada.jpg"; quebrada = true; break; } } }
Responder
Clique aqui para fazer login e interagir na Comunidade :)