Jquery 属性设置为变量后,动画不会执行

Jquery 属性设置为变量后,动画不会执行,jquery,Jquery,当我试图制作一个滑块时,我需要使它有条件地应用marginLeft或marginTop,因此我试图从返回的变量值中获取它 但是,我陷入了一个问题,经过大量的努力,我发现了问题的症结所在==>我无法为jQuery方法获取变量值。我首先认为var something='marginleft'无法工作,因为没有引号,{margin left:…}无法工作,因此请使用marginLeft进行尝试,如下例所示: 这项工作: $(selector).click(function(){ $(eleme

当我试图制作一个滑块时,我需要使它有条件地应用
marginLeft
marginTop
,因此我试图从返回的变量值中获取它

但是,我陷入了一个问题,经过大量的努力,我发现了问题的症结所在==>我无法为jQuery方法获取变量值。我首先认为
var something='marginleft'
无法工作,因为没有引号,
{margin left:…}
无法工作,因此请使用
marginLeft
进行尝试,如下例所示:

这项工作:

$(selector).click(function(){
    $(element).animate({
        marginLeft: '-=600'
这也适用于:

$(selector).click(function(){
var toLeft = '-=600';
    $(element).animate({
        marginLeft: toLeft
但为什么不是这样呢

$(selector).click(function(){
var move = 'marginLeft';
    $(element).animate({
        move: '-=600'
啊!!不允许在
{property:value}
方法中为jQuery方法分配从变量获取的属性


我怎样才能让它工作?或者,这是一个bug吗?

当你用这种语法创建一个对象时

{
    property: value
}
属性名称不能是变量。您在这里使用的名称就是财产的名称。就你而言:

var move = 'marginLeft';
    $(element).animate({
        move: '-=600'
该属性名为“move”,而不是“marginLeft”

要实现您的目标,请执行以下操作:

var move = 'marginLeft';
var options = {};
options[move] = '-=20';
$(element).animate(options);
现在这是你的