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