0

重複の可能性:
動的変数をオブジェクトリテラルとして使用し、jQueryアニメーション関数

関数の引数をjqueryアニメーションの設定として渡そうとしていますが、動作させることができません。

関数

function gridClick(a, b){
    $(c).animate({
        a : 0,
        b : 0
    }, 10000)
};

関数を呼び出す

gridClick('top', 'left', this);

コンソールログは、aとbが上と左として出力されていることを示していますが、実際には上と左としてアニメーションに影響を与えていません。これは構文エラーですか、それともさらに進んでいますか?

4

2 に答える 2

0

プロパティ名に変数を使用する場合は、角かっこ表記と割り当てを使用する必要があります。リテラル構文はそれをサポートしていません。

代わりに、以下を使用してください。

function gridClick(a, b, c) {
    var opts = {};
    opts[a] = 0;
    opts[b] = 0;
    $(c).animate(opts, 10000)
}
于 2012-12-17T18:57:24.120 に答える
0

オブジェクトリテラルを使用して変数名をオブジェクトのプロパティ名として使用できるとは思いません。考えられる回避策の 1 つを次に示します。

function gridClick(a, b) {
    var params = {};
    params[a] = 0;
    params[b] = 0;
    $(c).animate(params, 10000);
};
于 2012-12-17T18:56:19.833 に答える