悬停数组元素淡化另一个数组中的对应元素[闭包问题]

时间:2012-11-21 22:47:02

标签: javascript jquery arrays

我希望实现的是当我将鼠标悬停在deptmts数组中的元素上时,brnches数组中的相应元素会逐渐淡入和淡出。我在下面添加了我认为它应该是但不确定我哪里出错了。任何帮助将非常感激。

var brnches = ["#branch01","#branch02","#branch03","#branch04"]
var deptmts = ["#depart01","#depart02","#depart03","#depart04"]

var brchhov = function() {
    for(var i=0; i<deptmts.length; i++){
        $(deptmts[i]).hover(
            function(){$(brnches[i]).stop(true).fadeTo("fast", 1);},
            function(){$(brnches[i]).stop(true).fadeTo("slow", 0);}
        );
    }
};

1 个答案:

答案 0 :(得分:10)

经典关闭问题..

var brchhov = function() {
    for(var i=0; i<deptmts.length; i++){
       (function(num){
             $(deptmts[num]).hover(
                 function(){$(brnches[num]).stop(true).fadeTo("fast", 1);},
                 function(){$(brnches[num]).stop(true).fadeTo("slow", 0);}
             );
       })(i);
    }
};

<强> Check Fiddle