可能重复:
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被放置为顶部和左侧但它们实际上并不影响顶部和左侧的动画。这是语法错误还是还有更多问题?
答案 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)
}