Necesito consejos sobre cómo arreglar la función addEventListener en el código de la cookie js para mi sitio web. La ventana emergente de cookies siempre aparece, pero cuando hago clic en el botón Acepto, no desaparece y no se escribe en el almacenamiento local. La consola me escribe esto: "TypeError no detectado: no se puede leer la propiedad 'addEventListener' de null". Me gustaría que alguien me ayudara con esto, no sé cómo lidiar con eso. Debajo del texto está el código js y el código html.
Código JS:
const cookieContainer = document.querySelector(".cookie-container"); const cookieButton = document.querySelector(".cookie-btn"); cookieButton.addEventListener("click", () => { cookieContainer.classList.remove("active"); localStorage.setItem("cookieBannerDisplayed", "true"); }); setTimeout(() => { if (!localStorage.getItem("cookieBannerDisplayed")) { cookieContainer.classList.add("active"); } }, 2000);Código HTML:
<div class="cookie-container"> <p> Používáním této stránky souhlasíte s ukládáním souborů cookies a sběrem dat. </p> <button class="cookie-btn">Souhlasím</button> </div>Debe configurar la visualización predeterminada del contenedor en none y solo configurarlo para que se block cuando tenga la clase activa.
sugerencia:
if(cookieButton) { cookieButton.addEventListener("click", () => { cookieContainer.classList.remove("active"); localStorage.setItem("cookieBannerDisplayed", "true"); }); } // Edit: setTimeout(() => { if (!localStorage.getItem("cookieBannerDisplayed")) { if(cookieContainer) cookieContainer.classList.add("active"); } }, 2000);Supongo que si se acepta, su div no está en el dom de la página. Así que no puedo encontrar tu botón.
<div class="cookie-container"> ... </div>