如何将函数参数传递给jquery .animate?

时间:2012-12-17 18:54:48

标签: javascript jquery

  

可能重复:
  Using a dynamic variable as object literal, jQuery animate function

我正在尝试将函数参数作为jquery动画的设置传递,除非我无法使其工作。

功能

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

调用函数

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

控制台日志显示a和b被放置为顶部和左侧但它们实际上并不影响顶部和左侧的动画。这是语法错误还是还有更多问题?

2 个答案:

答案 0 :(得分:0)

我认为您不能使用对象文字将变量名称用作对象的属性名称。这是一种可能的解决方法:

function gridClick(a, b) {
    var params = {};
    params[a] = 0;
    params[b] = 0;
    $(c).animate(params, 10000);
};

答案 1 :(得分:0)

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

相反,请使用:

function gridClick(a, b, c) {
    var opts = {};
    opts[a] = 0;
    opts[b] = 0;
    $(c).animate(opts, 10000)
}