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 .

 <!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

Guilherme

Responder

Posts

02/09/2019

Sadasd

Seu problema é um erro de lógica olhe bem:

 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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar