为什么我的jQuery“完成”回调在Chrome& Safari但在FF中工作正常吗?

时间:2010-01-26 21:24:48

标签: javascript jquery syntax

我对这个jQuery代码有些问题。我是新手,但它适用于FF,但在Chrome和Safari中有所突破。感谢任何方式的建议。

 $('#level1nav ul li a:last').click(function () {

 $(lastBlock).animate({height:"400px"}, {queue:false, duration:500, 
    complete: function() 
        $(line).animate({width:"0px"}, {queue:false, duration:500, 
            complete: function() {window.location="?info"}
        })
    });
return false;
}); 

1 个答案:

答案 0 :(得分:4)

这是你的问题:

complete: function() 
    $(line).animate({width:"0px"}, {queue:false, duration:500, 
        complete: function() {window.location="?info"}
    })

您缺少外部函数体的打开和关闭花括号。它应该是这样的:

complete: function()

{

$(line).animate({width:"0px"}, {queue:false, duration:500, complete: function() {window.location="?info"} })

}

这适用于Firefox,因为JavaScript 1.8 introduced是在有限情况下不需要大括号的函数的“速记”:

  

表达式闭包

     

这个添加只不过是编写简单函数的简写,使语言类似于典型的Lambda符号。

     

...

     

这种语法允许你不用括号和'return'语句 - 使它们隐含。以这种方式编写代码没有额外的好处,除了在语法上更短。