Javascript 在元素之间传递缓和行为,jQueryUI

Javascript 在元素之间传递缓和行为,jQueryUI,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个对象accordiooptions,它调解了accordion对象的行为 在我的页面上。它看起来像: var accordionOptions = { icons: { header: 'ui-icon-circle-arrows-e', activeHeader: 'ui-icon-notice' }, ani

我有一个对象
accordiooptions
,它调解了accordion对象的行为 在我的页面上。它看起来像:

 var accordionOptions = {
                icons: {
                    header: 'ui-icon-circle-arrows-e',
                    activeHeader: 'ui-icon-notice'
                },
                animate: {
                    easing: 'easeOutBounce',
                    duration: 1000
                }
            }
我用这个物体来确定我的手风琴的行为,就像这样:

 $('#accordion1').accordion({
                icons: accordionOptions.icons,
                animate: accordionOptions.animate
            });
我在我的页面上有一个锚定标记,单击时,我希望它与单击新面板时的手风琴具有相同的动画:

$('#btnChange').click(function () {
                $('#test').animate({

                    easing: accordionOptions.animate.easing
                });
            });

你可以在小提琴上看到这不起作用。我试过几次,都没有成功。如何使用
accordioOptions
参数将所需的行为附加到
测试
div?

使用easing。animate
略有不同。accordio
需要分别通过持续时间和easing,而不是应该设置动画的。您应该设置一个高度或它应该设置动画的任何属性

$('#test').animate({ height: 100 }, accordionOptions.animate.duration, accordionOptions.animate.easing);
或与您最初的操作方式类似的较短语法:

$('#test').animate({ height: 100 }, accordionOptions.animate);

更新的fiddle

如果您愿意,您也可以在同一对象中传递缓和和持续时间,它只需要是第二个参数(因为第一个参数提到了要设置动画的属性)。现在我可以看到,我忽略了设置测试元素的y轴位置的动画,所以它不可能工作,即使我传递了正确的属性。@wootscootinboogie确实非常关键,因为jQuery非常棒,但还不能读懂我们的心思;)