Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2019, 05:30
JUMASOL
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años
Puntos: 8
Intentando cambiar "foreach" por "for"

Hola a todos.

Tengo esta función que hace su trabajo de forma parcial por problemas de compatibilidad de foreach en diversos navegadores.

Código:
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);
});
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.

He intentado hacerlo así (uno de los intentos):

Código:
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);
}
};
Sin resultado.

¿Me podéis echar un cable???

Última edición por JUMASOL; 07/11/2019 a las 05:39