Javascript 使用变量作为对象文字中的键(传递给jQuery';的动画)?

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

我试图将一个变量作为要设置动画的属性传递给jQuery的animate方法,但遇到了一些麻烦。以下是我尝试过的:

// 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()
无关-这是一个如何使用变量中指定的属性名创建对象的问题。谢谢,这很有意义。我将编辑我的问题以反映实际问题。谢谢!