Javascript 如何将函数参数传递给jquery.animate?
可能重复:Javascript 如何将函数参数传递给jquery.animate?,javascript,jquery,Javascript,Jquery,可能重复: 我试图传递一个函数参数作为jquery动画的设置,除非我无法让它工作 功能 function gridClick(a, b){ $(c).animate({ a : 0, b : 0 }, 10000) }; 调用函数 gridClick('top', 'left', this); 控制台日志显示a和b被显示为顶部和左侧,但它们实际上并不影响顶部和左侧的动画。这是一个语法错误还是发生了更多的错误?我认为不能使用对象文字将变量名用作
我试图传递一个函数参数作为jquery动画的设置,除非我无法让它工作 功能
function gridClick(a, b){
$(c).animate({
a : 0,
b : 0
}, 10000)
};
调用函数
gridClick('top', 'left', this);
控制台日志显示a和b被显示为顶部和左侧,但它们实际上并不影响顶部和左侧的动画。这是一个语法错误还是发生了更多的错误?我认为不能使用对象文字将变量名用作对象的属性名。以下是一种可能的解决方法:
function gridClick(a, b) {
var params = {};
params[a] = 0;
params[b] = 0;
$(c).animate(params, 10000);
};
如果要使用变量作为属性名称,则需要使用括号表示法和赋值。文字语法不支持它 相反,请使用:
function gridClick(a, b, c) {
var opts = {};
opts[a] = 0;
opts[b] = 0;
$(c).animate(opts, 10000)
}
和的可能重复。
c
是函数的第三个参数吗?是的,但c与此问题无关。OP缺少第三个参数(c),您也缺少:)c
可以是全局的,可以在外部范围内定义,等等。我怀疑这是因为gridClick('top','left',this)代码>。。但是你说的可能是真的。。顺便说一句,我没有回答你的问题,因为那根本与问题无关。这很有效。有没有办法给动画添加其他属性?例如.animate(params{height:100},1000)?为了与设置a
和b
的行保持一致,您可以添加params[“height”]=100代码>--或--参数高度=100代码>。另一个是初始化对象,如var params={height:100}
Hmmparams
来自哪里:)