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