for(var i=0;i<3;i++)
{
$("#span"+i).bind("click",function(){switchTabMain(i);});
}简单的一个方法。当我再switchTabMain方法中debug的时候,传入的参数一直是3,也就是i最后的值。。请问这个怎么解决?

解决方案 »

  1.   

    因为i是共享的,所以循环完就是最后的3,如果需要分别保留0,1,2如果需要应该用闭包的方式处理,这样应该就可以了。for(var i=0;i<3;i++)
    {
    (function(x) {
        $("#span"+x).bind("click",function(){switchTabMain(x);});  
    })(i); 
    }上面代码我没有测试,解决方式应该是没有问题的,你自己调试一下。
      

  2.   

    for(var i=0;i<3;i++)
    {
    (function(x) {
        return $("#span"+x).bind("click",function(){switchTabMain(x);});  
    })(i); 
    }