Erro em JavaScript
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
Curtidas 0
Respostas
Sadasd
02/09/2019
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;
}
}
}
GOSTEI 0