2013-07-06 3 views
0

В последнее время с помощью SOF я написал simple slider для своей веб-страницы. Мне нужно запустить несколько слайдеров с разными настройками. Мне нужно объединить массивы с настройками, помещенными в конструктор классов. Настройки, размещенные здесь, должны перезаписывать настройки по умолчанию.JavaScript Собственный класс: слияние массивов с настройками

Мой код:

var MiniSlider = function(objId, settings) 
{ 
    this.obj = $("#" + objId); 
    var self = this; 

    self.obj.settings = { 
     items: $("ul li", self.obj).length, 
     autoChangeTime: 8000, 
     animation: 'horizontal' 
    }; 

    if(settings) 
    { 
     $.merge(self.obj.settings, settings) 
    } 
    ... rest of the code at link [1] 
}; 

И призывание:

new MiniSlider("mini-slider-2", [{animation: 'vertical'}]); 

С этим я понимаю, что: Firebug console.log of self.obj.settings

Анимация должна быть установлена ​​на 'вертикали'. A также пытался:

new MiniSlider("mini-slider-2", {animation: 'vertical'}); 

Это также не работает. Любые советы, как объединить это?

ответ

1

$ .merge предназначен для массивов. Вы должны использовать $ .extend (потому что settings является объектом)

$.extend(self.obj.settings, settings) 

и призывание

new MiniSlider("mini-slider-2", {animation: 'vertical'}); 
Смежные вопросы