0

Есть вот такой код:

for (var i = 0; i <= some.length; i++) {
  block1[i].onmouseenter = function() {
    block2[i].classList.toggle('active_game');
  }
}

block2 не получает i

Вот что я планировал:

block1[0].onmouseenter = function() {
  block2[0].classList.toggle('active_game');
}
block1[1].onmouseenter = function() {
  block2[1].classList.toggle('active_game');
}

Подскажите, пожалуйста, как я могу решить данную проблему. Желательно на native js.

meine
  • 7,394

1 Answers1

1

Все обработчики в вашем коде ссылаются на одну переменную i. Можно заменить var на let или попробовать такой вариант:

for (var i = 0; i <= some.length; i++) {
  createHandler(i);
}

function createHandler(id) {
  block1[id].onmouseenter = function(){
      block2[id].classList.toggle('active_game');
  }
}
Doigrales
  • 1,091