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

174
Visualizações
Mantenga la clase agregada de los botones de opción al recargar

He estado trabajando en este código durante horas y sigo encontrando una variedad de problemas, por lo que la cantidad de veces que he editado y probado diferentes formas de codificar esto es mucha. Básicamente, estoy tratando de crear un conmutador de tema de 3 (o más) colores usando botones de opción. Se supone que debe agregar una clase, según la que se haya seleccionado, a la etiqueta del cuerpo para que pueda usar css y variables para cambiar el estilo.

Lo conseguí para agregar la clase a la etiqueta del cuerpo, pero al recargar, no mantendrá la clase. Sigo leyendo sobre localStorage, así que intenté agregarlo, pero nunca lo había usado antes, así que no sé si las varias formas que he probado son simplemente... incorrectas o si simplemente no funcionan. con lo que estoy tratando de hacer.

Solo puedo usar JavaScript y/o JQuery. Esto es lo que tengo actualmente.

HTML

 <input name="theme" type="radio" aria-label="Light" id="light" value="light"> <label for="light">Light</label> <input name="theme" type="radio" aria-label="Medium" id="medium" value="medium"> <label for="medium">Medium</label> <input name="theme" type="radio" aria-label="Dark" id="dark" value="dark"> <label for="dark">Dark</label>

GUION

 jQuery(window).on("load", function() { $("#light").click(function(){ $("body").removeClass("medium"); $("body").removeClass("dark"); $("body").addClass("light"); localStorage.ClassName = "light"; }); $("#medium").click(function() { $("body").removeClass("light"); $("body").removeClass("dark"); $("body").addClass("medium"); localStorage.ClassName = "medium"; }); $("#dark").click(function() { $("body").removeClass("light"); $("body").removeClass("medium"); $("body").addClass("dark"); localStorage.ClassName = "dark"; }); });

También, para tener en cuenta, probé las secciones individuales (con sus nombres de clase relevantes) como

 $("#dark").click(function() { $("body").removeClass("light"); $("body").removeClass("medium"); $("body").addClass(localStorage.getItem('dark')); });
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Su problema es localStorage.getItem("dark") Debería ser localStorage.getItem("ClassName")

Y una mejor práctica es usar el método localStorage.setItem("ClassName", "light") para asignar datos

Aquí hay un artículo de MDN sobre LocalStorage .

Este es tu código editado:

 jQuery(window).on("load", function() { $("#light").click(function(){ $("body").removeClass("medium"); $("body").removeClass("dark"); $("body").addClass("light"); localStorage.setItem("ClassName", "light") }); $("#medium").click(function() { $("body").removeClass("light"); $("body").removeClass("dark"); $("body").addClass("medium"); localStorage.setItem("ClassName", "medium") }); $("#dark").click(function() { $("body").removeClass("light"); $("body").removeClass("medium"); $("body").addClass("dark"); localStorage.setItem("ClassName", "dark") }); }); $("#dark").click(function() { $("body").removeClass("light"); $("body").removeClass("medium"); $("body").addClass(localStorage.getItem('ClassName')); });
about 4 years ago · Santiago Trujillo 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