2016-10-27 3 views
0

Ich habe mehrere Instanzen von Slider, und ich muss die gleichen Parameter an alle übergeben.Übergabe von Parametern mit Array in Javascript

Ich nehme an, dass ich Array dafür brauche, aber da ich Neuling in JS bin, bin ich unsicher, wie es richtig geht.

Parameter sieht zum Beispiel wie folgt aus:

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

und Schieber Beispiel:

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

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

}); 

Danke :)

+0

Blick auf '$ .extend' - es können Sie Objekte zusammen fusionieren, so dass Sie kann' var commonOpts = {Raum zwischen: 20 ...} 'und dann' $ .extend ({ }, commonOpts, swiper1Opts) ' – vlaz

Antwort

0

Hallo Sie können wie Sie unten

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

+0

Wenn Sie Code-Snippet-zertifiziert verwenden, funktioniert das, aber vielleicht in Ihrer Antwort kann geeignet sein, Codeformat zu verwenden. –

+0

Ich habe es benutzt, weil ich ein Problem hatte. Problem Ich habe es wegen '[' sein nicht richtig formatieren, so habe ich in Code-Snippet –

+0

hinzugefügt Unabhängig von dem Problem, wenn nicht funktioniert, macht keinen Sinn, es zu verwenden. –

0

können Sie jQuery verwenden $.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

Die beredteste Weg, dies in ES5 zu tun ist, zu schaffen ein neues Konfigurationsobjekt für jede Folie, aber basierend auf einem gemeinsamen Objekt mit $.extend. (Object.assign() ist ähnlich in 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' 
}); 

Es wäre cool mehr Code zu sehen - ich denke, Sie könnten Schleife über Ihre DOM-Elemente und die Config erstellen für jeden on-the-fly. Etwas wie:

$('.swiper').each(function(idx, el){ 
    $(this).swiper({ 
     spaceBetween: 20, 
     slidesPerView: 5, 
     breakPoints: { ... }, 
     prevButton: '.b-prev-'+(idx+1), 
     nextButton: '.b-next-'+(idx+1) 
    }); 
}); 
Verwandte Themen