Javascript 使用变量作为对象文字中的键(传递给jQuery';的动画)?
我试图将一个变量作为要设置动画的属性传递给jQuery的animate方法,但遇到了一些麻烦。以下是我尝试过的:Javascript 使用变量作为对象文字中的键(传递给jQuery';的动画)?,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我试图将一个变量作为要设置动画的属性传递给jQuery的animate方法,但遇到了一些麻烦。以下是我尝试过的: // these first two would really be filled in from an external source: var animationAttribute = 'left'; var newTarget = 500; var animationToPerform = { animationAttribute: newTarget }; $(elem
// these first two would really be filled in from an external source:
var animationAttribute = 'left';
var newTarget = 500;
var animationToPerform = { animationAttribute: newTarget };
$(element[0].selector).stop().animate(animationToPerform, 400, 'linear');
它根本不工作,没有错误。如果我对属性进行硬编码,使其具有如下动画效果:
var newTarget = 500;
var animationToPerform = { 'left': newTarget };
$(element[0].selector).stop().animate(animationToPerform, 400, 'linear');
它们应该是完全相同的,因为它返回true:
'left' === animationAttribute // (evaluates as true)
请帮忙 这是因为不能将变量用作对象文本中的键。实现这一点的解决方案是创建一个空对象,然后使用括号表示法从变量中命名一个新键:
var animationAttribute = 'left';
var newTarget = 500;
var animationParams = {};
animationParams[animationAttribute] = newTarget;
$(element[0].selector).stop().animate(animationParams, 400, 'linear');
请注意,这个问题实际上与
.animate()
无关-这是一个如何使用变量中指定的属性名创建对象的问题。谢谢,这很有意义。我将编辑我的问题以反映实际问题。谢谢!