我可以使用for循环迭代器作为javascript中的数组索引吗



Javascript For循环在使用迭代器(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));
}

我已经解决了这个问题,这是最终的解决方案:

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);
}

最新更新