我目前正在学习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 ?。
答案 0 :(得分:0)
语法错误,请注意。并加上。+
$animation.+settings
另请注意:“in”是一个保留字,最好尽快更改 https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words
答案 1 :(得分:0)
我设法解决了我面临的问题,我将文字对象更改为变量并调用子对象,因此...... animation[settings.animation]
可以工作。