Error:
Código:
TypeError: Cannot read properties of null (reading 'addEventListener')
Codigo de los event listener:
Código
function eventListeners(){ const mobileMenu = document.querySelector('.mobile-menu'); mobileMenu.addEventListener('click', navegacionResponsive); const precioOferta = document.querySelectorAll('input[name="producto[oferta]"]'); precioOferta.forEach(input => input.addEventListener('click', mostrarCajaPrecioOferta)); }
Si dejo comentadas las dos líneas de arriba del bloque empieza a funcionar normalmente pero obviamente pierdo la nueva funcionalidad que implemente.
Gracias de antemano, saludos.
--------------------
Solucionado al chequear si no es NULL el resultado del querySelector, no sabia muy bien como funcionaba y pasaba cuando cargaba HTML que no incluía esa clase o atributo.
Código
function eventListeners(){ const mobileMenu = document.querySelector('.mobile-menu'); if(mobileMenu != null){ mobileMenu.addEventListener('click', navegacionResponsive); } const precioOferta = document.querySelectorAll('input[name="producto[oferta]"]'); if(precioOferta != null){ precioOferta.forEach(input => input.addEventListener('click', mostrarCajaPrecioOferta)); } }
----
Otra posible solución por si alguien que lee el post tiene el mismo problema y lo anterior no funciona:
Código
/*Ejecuta el codigo dentro de function(){} una vez que el HTML esta completamente cargado.*/ document.addEventListener('DOMContentLoaded', function (){ eventListeners(); });