Escribí un código JS para mi sitio web, que debería mostrar un modal y cerrarlo, si hago clic en el lapso "cerrar". La primera vez, funcionó perfectamente. Aquí está el código:
var modal = document.getElementById("notifications"); var img = document.getElementById("shownotificationbar"); var span = document.getElementsByClassName("close")[0]; img.onclick = function() { modal.style.display = "block"; } span.onclick = function() { modal.style.display = "none"; }Pero la segunda vez, el botón de cerrar simplemente no funciona y obtengo
" TypeError no detectado: no se pueden establecer las propiedades de nulo (configurando 'onclick') "
Aquí está la segunda pieza de código:
var menu = document.getElementById("startmenu"); var img = document.getElementById("showstartmenu"); var span = document.getElementById("closemenu"); img.onclick = function() { menu.style.display = "block"; } span.onclick = function() { menu.style.display = "none"; }Creo que no puedo usar dos tramos, pero ¿qué más debo hacer? ¡Muchos gracias!
La segunda vez que img es nulo, por lo que no puede configurar img.onclick . La razón por la que es null es probablemente que no hay ningún elemento con id showstartmenu , por lo que cuando intenta obtenerlo ( document.getElementById("showstartmenu") ), obtiene null en su lugar.
Editar:
Lo sentimos, también podría ser que el span sea nulo, por la misma razón. Me perdí ese.