1

jqueryライブラリにアクセスできない場所とは異なるスコープで実行されている関数と関係があると思います(下の2行目の最後のパラメータとして呼び出されていることが示されています)

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

1行目は機能し、その後クラッシュします'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 () {})
 });
4

1 に答える 1

3

の 3 番目の引数.animate()はコールバック関数ですが、最初のコードでは変数を渡すだけです。

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

ノート

の構成.animate()は次のようになります。

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

where[]はオプションを意味します。

あなたのコードでは、そうしないeasingと、3 番目の引数は完全なコールバック関数として扱われます。

詳しくは上記リンク先をご覧ください。

于 2012-06-13T09:51:27.863 に答える