2016-04-01 90 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'。 –