2016-10-27 3 views
0

У меня есть несколько примеров слайдера, и мне нужно передать одинаковые параметры каждому.Передача параметров с массивом в javascript

Я предполагаю, что мне нужен массив для этого, но так как я новичок в JS, я не уверен, как это сделать правильно.

Параметры выглядит, например, так:

spaceBetween: 20, 
slidesPerView: 5, 
breakpoints: { 
    600: { 
    slidesPerView: 2 
    }, 
    991: { 
    slidesPerView: 3 
    }, 
    1200: { 
    slidesPerView: 4 
    } 
} 

и слайдер экземпляра:

var swiper1 = new Swiper('.swiper1', { 
    prevButton: '.b-prev-1', 
    nextButton: '.b-next-1', 

    //here I need to get the rest of the parameters 

}); 

Спасибо :)

+0

взгляд на '$ .extend' - это позволяет объединять объекты вместе, так что вы можете иметь' вар commonOpts = {spaceBetween: 20 ...} ', а затем' $ .extend ({ }, commonOpts, swiper1Opts) ' – vlaz

ответ

0

Привет Вы можете написать как ниже

var swiper1 = new Swiper('.swiper1', [ 
 
    prevButton: '.b-prev-1', 
 
    nextButton: '.b-next-1', 
 
    //here I need to get the rest of the parameters 
 
]);

+0

, если вы используете сертифицированный фрагмент кода, который работает, но, возможно, в вашем ответе может быть целесообразно использовать формат кода. –

+0

Я использовал его, потому что столкнулся с проблемой. Проблема я столкнулся с этим из-за того, что «['его не форматирование правильно, поэтому я добавил к фрагменту кода –

+0

Независимо от проблемы, если не работает, нет смысла использовать его. –

0

Вы можете использовать JQuery-х $.extend():

var extraDetails = { 
    spaceBetween: 20, 
    slidesPerView: 5, 
    breakpoints: { 
     600: { 
     slidesPerView: 2 
     }, 
     991: { 
     slidesPerView: 3 
     }, 
     1200: { 
     slidesPerView: 4 
     } 
    } 
}; 

var swiper1 = new Swiper('.swiper1', $.extend({ 
     prevButton: '.b-prev-1', 
     nextButton: '.b-next-1' 
    }, 
    extraDetails 
)); 
0

Самый красноречивый способ сделать это в ES5, чтобы создать новый объект конфигурации для каждого слайда, но основывайте его на общем объекте с использованием $.extend. (Object.assign() похож на VanillaJS)

var commonConfig = { spaceBetween: 20, slidesPerView: 5, breakPoints: { ... } }; 

var swiper1 = $.extend(true, {}, commonConfig, { 
    prevButton: '.b-prev-1', 
    nextButton: '.b-next-1' 
}); 

var swiper2 = $.extend(true, {}, commonConfig, { 
    prevButton: '.b-prev-2', 
    nextButton: '.b-next-2' 
}); 

Было бы здорово видеть больше кода - Я полагаю, вы могли бы петлю над вашими DOM элементов и создания конфигурации на лету для каждого из них. Что-то вроде:

$('.swiper').each(function(idx, el){ 
    $(this).swiper({ 
     spaceBetween: 20, 
     slidesPerView: 5, 
     breakPoints: { ... }, 
     prevButton: '.b-prev-'+(idx+1), 
     nextButton: '.b-next-'+(idx+1) 
    }); 
}); 
Смежные вопросы