Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
Problema con el acceso a un valor de variables fuera de una función
let dark = true; function toggle() { dark = false; document.body.classList.toggle('dark-mode'); } if (dark = false) { document.getElementById("logo").src="../../img/Kevin D (White).png"; }else { document.getElementById("logo").src="../../img/Kevin D (Black).png"; }

Arriba está mi código. Cada vez que hago clic en el botón, la imagen no pasa a la versión en blanco, sino que permanece negra incluso sobre un fondo negro, ¿cómo solucionaría esto? El código también está adjunto a un botón que llamaría a esa función.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Hay algunas cosas que resolver aquí:

  • Debe volver a llamar al if cuando cambia la variable, lo hacemos envolviéndolo en una función, luego llamándolo al cargar y cada vez que se llama al conmutador.
  • Toggle actualmente no "alterna", establezca el valor en !dark para invertirlo cada vez.
  • El if actualmente está asignando el valor false a la variable dark , necesitamos compararlo en su lugar, y dado que ya es un booleano, puede ser simplemente if (dark) {}

 var dark = true; function toggle() { dark = !dark; // To actually toggle the variable you need to invert the current value document.body.classList.toggle('dark-mode'); // After the variable is toggle, call the function to update the theme changeTheme() } function changeTheme() { if (dark) { console.log("It's dark!") } else { console.log("It's light!") } } // Call the function on load to set the initial theme changeTheme() // Add an event listener to call the toggle function document.getElementById("toggle").addEventListener("click", toggle);
 <div id="toggle">Toggle</div>

about 4 years ago · Juan Pablo Isaza Relatório

0

  • Su función se llama 'alternar', pero por el momento solo establecería oscuro en falso. Así que cambiaría eso a dark = !dark , por lo que siempre se establece en lo contrario.
  • El siguiente paso es incluir el bloque if-else dentro de la función, para que se ejecute al alternar.
  • El único signo igual en la instrucción if ya se mencionó...
  • en lugar de if(dark === false) puedes simplemente verificar if(!dark) o mejor cambiar la lógica para no comenzar con una negación y decir if(dark){'dark'}else{'not dark}
  • Parece que tiene espacios en blanco dentro de los nombres de archivo de las imágenes, lo que probablemente sea mejor evitar...

 let dark = true; function toggle() { dark = !dark; document.body.classList.toggle('dark-mode'); if (dark === false) { console.log('dark ===', dark, '>> set white img') // document.getElementById("logo").src = "../../img/Kevin D (White).png"; } else { console.log('dark ===', dark, '>>set black img') // document.getElementById("logo").src = "../../img/Kevin D (Black).png"; } }
 .dark-mode { background: black; color: white; }
 <button onclick="toggle()">toggle</button>

about 4 years ago · Juan Pablo Isaza Relatório

0

Tienes un error con el signo =. debería ser ==

 if (dark == false) {
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda