2016-04-01 89 views
0

我正在制作一个网站,我在img文件夹中计数.jpgs并将该数字保存在albumLength下,然后使用for循环在网站上显示它们,并且每个都有一个id =“内容”+我,所以content1,content2等。当我将鼠标悬停在content1上时,我希望id = plus_label1的元素停止隐藏并使其可见,并且当我离开对象时再次隐藏它。问题是我目前的代码不工作,没有错误,它只是不出现。任何想法为什么?JQuery .hover()问题

for(i=1;i<=albumLength;i++){ 
$("#content"+i).hover(
    function() { 
    $("#plus_label"+i).css('visibility','visible'); 
    }, 
    function() { 
$("#plus_label"+i).css('visibility','hidden'); 
    } 
); 
} 
+0

可以添加一个一致的类名的内容,或者你不能访问它? – Adjit

+1

更好的,如果你可以发布一些html,甚至把一个工作示例在小提琴 –

+2

查找“循环中的异步函数中的var范围” – phenxd

回答

1

问题是,当你做你的悬停,i不再被定义。 但是鉴于#plus_label与相同数量的#content你可以做结尾:

for(i=1;i<=albumLength;i++){ 
$("#content"+i).hover(
    function() { 
    var i = parseInt($(this).attr('id')); 
    $("#plus_label"+i).css('visibility','visible'); 
    }, 
    function() { 
    var i = parseInt($(this).attr('id')); 
    $("#plus_label"+i).css('visibility','hidden'); 
    } 
); 
} 
+0

从技术上讲,'i'确实存在。只是他们在功能上引用了完全相同的“我”值。意思是,他们都将读'我'作为'albumLength + 1'。 –