带有变量的Jquery动态选择器

时间:2012-07-08 13:56:29

标签: jquery variables dynamic

我目前正在学习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 ,这是在 settings / defaults 数组中定义的,我将如何让这个工作,以便我可以调用 animation.in 而不是 animation.slide.in ?。

2 个答案:

答案 0 :(得分:0)

语法错误,请注意。并加上。+

  $animation.+settings

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

答案 1 :(得分:0)

我设法解决了我面临的问题,我将文字对象更改为变量并调用子对象,因此...... animation[settings.animation]可以工作。