0

我目前正在学习javascript(jquery)。我正在构建一个插件来创建简单的手风琴菜单,但在创建动态变量时遇到了问题。

(function($){

    jQuery.accordify = function(settings){

        $defaults = {
            section : null,
            content : null,
            animation: 'slide',
            speed: 500
        }

        var defaults = $defaults;
        var settings = $.extend(defaults, settings);

        $animation = {
            slide : {in : 'slideDown('+settings.speed+')', out: 'slideUp('+settings.speed+')'},
            fade : {in: 'fadeIn('+settings.speed+')', out: 'fadeOut('+settings.speed+')'}
        }

        var animation = $animation.+settings.animation; // equvilent to 'animation.slide'

        alert(animation.in); // should return 'slideUp(500)'

    }

})(jQuery);

变量动画试图引用在设置/默认数组中定义的animation.slide的等价物,我将如何让它工作,以便我能够调用animation.in而不是animation.slide.in

4

2 回答 2

0

我设法解决了我面临的问题,我将文字对象更改为变量并像这样调用子对象......animation[settings.animation]这很有效。

于 2012-07-08T14:36:54.020 回答
0

语法错误,注意 . 再加上.+

  $animation.+settings

另请注意:“in”是保留字,最好尽快更改 https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words

于 2012-07-08T14:00:45.833 回答