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) {
    var params = {};
    params[a] = 0;
    params[b] = 0;
    $(c).animate(params, 10000);
};
于 2012-12-17T18:56:19.833 回答
0

如果要使用变量作为属性名称,则需要使用括号表示法和赋值。文字语法不支持它。

相反,使用:

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