Javascript 如何将多数组参数传递给jquery for循环

Javascript 如何将多数组参数传递给jquery for循环,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想在将鼠标悬停在项目上时显示覆盖图 这是代码: 风险值项目=[项目1,项目2]; var overlays=[overlay-1,overlay-2]; 对于var i=0;i.长度;i++{ $items[i]。悬停 函数{$overlays[i].cssvisibility,visible;}, 函数{$overlays[i].cssvisibility,hidden;}; } 但是,它不起作用。。。 它覆盖的接缝无法识别 为什么?这是一个收尾问题。当hover in/out函数实际运行时

我想在将鼠标悬停在项目上时显示覆盖图

这是代码:

风险值项目=[项目1,项目2]; var overlays=[overlay-1,overlay-2]; 对于var i=0;i.长度;i++{ $items[i]。悬停 函数{$overlays[i].cssvisibility,visible;}, 函数{$overlays[i].cssvisibility,hidden;}; } 但是,它不起作用。。。 它覆盖的接缝无法识别


为什么?

这是一个收尾问题。当hover in/out函数实际运行时,循环早已退出,i>2

添加单独的处理程序函数:

var items=["#item-1","#item-2"];
var overlays=["#overlay-1","#overlay-2"];

function sethover(n) {
  $(items[n]).hover(
    function(){$(overlays[n]).css("visibility", "visible");},
    function(){$(overlays[n]).css("visibility", "hidden");});
}

for (var i = 0; i < items.length; i++) {
  sethover(i);
}

我会这样做

$(".item").hover(function(){
    $(this).find(".overlay").show();
});

这似乎是一个范围问题,您尝试选择的覆盖超出范围

只需将鼠标悬停应用于item类,将隐藏/显示逻辑应用于overlay类,就可以完全消除显式循环项的需要。此外,为了隐藏和显示项,jQuery友好模式使用hide和show方法

$('div.item').hover(function(){
    var overlay = $(this).children('div.overlay');
    overlay.hide();
});
overlay.hide();
},
function(){
    var overlay = $(this).children('div.overlay');
    overlay.show();
});
在不了解所有细节的情况下,您应该知道这种方法可能会产生一些不必要的闪烁

$('div.item').hover(function(){
    var overlay = $(this).children('div.overlay');
    overlay.hide();
});
overlay.hide();
},
function(){
    var overlay = $(this).children('div.overlay');
    overlay.show();
});