Javascript 传递参数以设置jquery函数的动画

Javascript 传递参数以设置jquery函数的动画,javascript,jquery,function,Javascript,Jquery,Function,我想在自定义函数中传递参数来设置特定零件的动画。完全不知道我错过了什么 我已经创建了一个 function animate($class,$method,$value,$duration,$delay) { var delay_time = 0; $($class).each(function() { $(this).delay(delay_time).animate({ $method : $value }, {

我想在自定义函数中传递参数来设置特定零件的动画。完全不知道我错过了什么

我已经创建了一个

function animate($class,$method,$value,$duration,$delay) {
    var delay_time = 0;
    $($class).each(function() {
        $(this).delay(delay_time).animate({
            $method : $value
        }, {
            duration: $duration
        });
        delay_time += $delay;
    });
}

animate(".container","width", 100, 300, 250);
$method
是我试图传递的,出于某种原因,它不想工作?我错过了什么?

function animate($class,$method,$value,$duration,$delay) {
    var delay_time = 0;
    $($class).each(function() {
        $(this).delay(delay_time).animate({
            $method : $value
        }, {
            duration: $duration
        });
        delay_time += $delay;
    });
}

animate(".container","width", 100, 300, 250);
您不能像在
{$method:$value}
中那样定义对象,但可以在animate方法之外构造对象,然后传递它:

var my_object = {};
my_object[$method]=$value;

$(this).delay(delay_time).animate(my_object,{duration: $duration});
希望这有帮助


函数动画($class、$method、$value、$duration、$delay){
var延迟时间=0;
$($类)。每个(函数(){
var my_object={};
my_对象[$method]=$value;
$(this).delay(delay_time).animate(我的_对象,{duration:$duration});
延迟时间+=$delay;
});
}
动画(“.container”,“width”,100300250)
.container{
不透明度:1;
宽度:0;
背景:#0f0;
高度:100px;
}
p{
保证金:0;
}

给我看看

给我看看


$method:$value
不能使用变量来定义这样的对象属性名称,它只会生成一个名为“$method”的属性。
@PatrickEvans有什么原因不能这样做吗?@PatrickEvans,怎么做?为什么?<代码>var val=100;var obj={val:val};控制台日志(obj)=>
对象{val:100}
,因为浏览器使用的JS引擎从未内置它。尽管使用ES6,您将能够使用计算属性来执行此操作,但像:
{[$method]:$value}
这样的语法目前主要只受chrome和firefox@RayonDabre是的,这使得属性名称字面上不是
val
包含的内容,即100