Tengo lo que creo que es un problema de código bastante simple, pero no obstante. Básicamente, todo funciona como debería, excepto que todo lo que necesito es eliminar una clase del cuerpo del documento si hay una cookie presente. Tengo una superposición emergente de política de cookies que aparece en la primera visita. Cuando se acepta, se establece una cookie. Sin embargo, si la cookie está configurada, ya no quiero que se expanda el menú lateral, que es simplemente una clase en el cuerpo llamada 'show-menu'.
Entiendo que todo lo que necesita hacer para eliminar una clase del cuerpo es: document.body.classList.remove('show-menu');
Sin embargo, el único lugar en mi archivo cookie.js que hace referencia a verificar si hay una cookie y si mostrar la superposición nuevamente o no está aquí:
if (this.options.cookieAlert) { if (getCookie(this.options.cookieName) !== '') { this.destroy(); return false; } if (this.options.cookieAcceptButtonId !== null) { document.getElementById(this.options.cookieAcceptButtonId).addEventListener('click', function(e){ e.preventDefault(); setCookie(that.options.cookieName, 'yes', that.options.cookieExpireDay); that.destroy(); }); } }Intenté agregar la línea classList.remove('show-menu') encima de 'this.destroy();' para ver si al menos eliminaría la clase 'show-menu' del cuerpo antes de cancelar la función.
Y aquí está el código var 'getCookie'. Tampoco pude agregar la línea classList.remove a esto y hacer que funcione.
var getCookie = function(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; }