Tengo esta función que hace su trabajo de forma parcial por problemas de compatibilidad de foreach en diversos navegadores.
Código:
Quiero cambiar foreach por for. Parece que hay diversas alternativas pero ninguna me ha funcionado. Quiero hacerlo sin jQuery. Supongo que será posible pero hasta ahora no me resulta nada.var toggles = document.querySelectorAll('.selector'); var active = null; function toggleSubmenus (event) { var current = event.target; var isCurrentActive = current === active; toggles.forEach(function (toggle) { toggle.classList.toggle('visible', toggle === current && !isCurrentActive); }); active = isCurrentActive ? null : current; } toggles.forEach(function(toggle) { toggle.addEventListener('click', toggleSubmenus); });
He intentado hacerlo así (uno de los intentos):
Código:
Sin resultado.var toggles = document.querySelectorAll('.selector'); var active = null; function toggleSubmenus (event) { var current = event.target; var isCurrentActive = current === active; for (let i = 0; i < toggles.length; i++) { function (toggle) { toggle.classList.toggle('visible', toggle === current && !isCurrentActive); } }; active = isCurrentActive ? null : current; } for (let i = 0; i < toggles.length; i++) { function(toggle) { toggle.addEventListener('click', toggleSubmenus); } };
¿Me podéis echar un cable???