Jquery和闭包或函数引用不起作用?

时间:2012-06-13 09:50:36

标签: javascript jquery

我认为它与在jquery库不可访问的差异范围内运行的函数有关(显示为下面第二行的最后一个参数)

var funcExpandHeight = container.animate({
    height: '300px'
}, 300, function () {});
foo.animate({
    height: 'show'
}, 300, funcExpandHeight);

第一行有效,然后在'f.easing[i.animatedProperties[this.prop]] is not a function'

上崩溃

如下图所示将这些线组合在一起,操作成功完成。

    foo.animate({
     height: 'show'
 }, 300, function () {
     container.animate({
         height: container[0].scrollHeight + 'px'
     }, 300, function () {})
 });

1 个答案:

答案 0 :(得分:3)

.animate()的第三个参数是回调函数,但在你的第一个代码中,你只是传递一个变量。

var funcExpandHeight = function() {
   container.animate({height: '300px'}, 300, function(){});
}
foo.animate({height: 'show'}, 300, funcExpandHeight);

注意

.animate()

配置如下:

.animate( properties [, duration] [, easing] [, complete] )

[]表示可选。

在你的代码中,你没有给easing,所以第三个参数将被视为完整的回调函数。

有关详细信息,请参阅上面的链接。