Могу ли я использовать для l oop итератор в качестве индекса массива в javascript? - PullRequest
0 голосов
/ 26 февраля 2020

Javascript Если l oop не работает при использовании итератора (i) в качестве индекса массива

boxes = document.getElementsByClassName("menoe");
imgs = document.getElementsByClassName("course_image");
butns = document.getElementsByClassName("continue_learning");
function meraj (imgs, butns, i) {
  imgs[i].style.opacity = "0.1";
  butns[i].style.visibility = "visible";
}
function merajo (imgs, butns, i) {
  imgs[i].style.opacity = "1";
  butns[i].style.visibility = "hidden";
}
for (i = 0; i < boxes.length; i++) {
  boxes[i].addEventListener("mouseover", meraj(imgs, butns, i));
  boxes[i].addEventListener("mouseout", merajo(imgs, butns, i));
}

1 Ответ

0 голосов
/ 27 февраля 2020

Я решил проблему, и это окончательное решение:

meraj = function meraj (imgs, butns, i) {
  imgs[i].style.opacity = "0.1";
  butns[i].style.visibility = "visible";
}
merajo = function merajo (imgs, butns, i) {
  imgs[i].style.opacity = "1";
  butns[i].style.visibility = "hidden";
}
function addListenerWithArgs(elem, evt, func, var1, var2, var3){
  var f = function(ff, v1, v2, v3){
    return (function (){
      ff(v1, v2, v3);
    });
  }(func, var1, var2, var3);
  elem.addEventListener(evt, f);
  return f;
}
for (i = 0; i < boxes.length; i++) {
  var storeFunc = addListenerWithArgs(boxes[i], "mouseover", meraj, imgs, butns, i);
  var storeFunc = addListenerWithArgs(boxes[i], "mouseout", merajo, imgs, butns, i);
}
...