给一个带有1个变量/对象的函数提供几个参数

时间:2013-08-30 23:36:55

标签: javascript

作为一个例子,我采用jQuery动画功能: 它是这样的:

$("#div1").animate({
                width: '300px',
            }, 1000, function() {
                console.log("animate 1 done");
            });

我想这样:

animateConfig = [{
                width: '300px',

            }, 1000, function() {
                console.log("animate1 done");
            }];

startAnimate($("#div1"), animateConfig);

function startAnimate(obj, animateConfig) {
    console.log(animateConfig);
    obj.animate(animateConfig);

}

也是一个小提琴:http://fiddle.jshell.net/hVXKM/1/

2 个答案:

答案 0 :(得分:3)

尝试:

obj.animate.apply(obj, animateConfig);

答案 1 :(得分:1)

.animate()方法允许您将对象作为第二个参数传递。这样你就可以做到这一点:

文档:.animate( properties, options )

animateConfig = {
    props: { width: '300px' },
    options: {
        duration: 1000,
        complete: function() {
           console.log("animate1 done");
        }
    }
}

那么你可以这样做:

function startAnimate(obj, config) {
    obj.animate(config.props, config.options);
}

startAnimate(obj, animateConfig);