2016-07-22 6 views
0

Auf Stiftung 6.Foundation 6 Orbit: Änderung Slide programmatisch

Ich habe einen Orbit Schieber, der neben dem Standardverhalten, es muss auch in der Lage sein, um die Folie zu ändern, wenn eine externe Schaltfläche geklickt wird.

Gibt es eine Möglichkeit, dies zu erreichen?

Ich habe diesen Code versucht:

jQuery('#theslider').foundation('changeSlide', true, slide_id); 

//slide_id is the jQuery object's slide ex: jQuery(#slideid); 

Es Art funktioniert, aber es funktioniert erratisch.

Es funktioniert manchmal für eine Weile, aber an einem gewissen Punkt geht die Folie schnell und verschwindet vom Bildschirm oder friert einfach ein.

Ich kann nicht scheinen, ein Muster zu finden, was vor sich geht.

Ich bin kein Experte für Javascript, so dass ich etwas wirklich offensichtlich fehlen könnte.

+0

Der Schieber hat einen eigenen Timer ist auf den nächsten Schieber-Bild zu gleiten. Wenn Sie diese Funktion implementieren, funktioniert sie, aber wenn die Zeit abgelaufen ist, wechselt sie zur nächsten Folie. Versuchen Sie also, den Timer auch mit der von Ihnen geschriebenen Funktion zu steuern. Versuche auch, deinen Code über jsfiddle zu teilen. –

Antwort

0

Meine Lösung wie folgt:

$('.orbit-external-control').on('click', function() { 
    var activeIdx = ~~$('.orbit .orbit-bullets .is-active').data('slide') 
    var changeIdx = ~~$(this).data('slide') 
    var isLTR = (changeIdx > activeIdx) ? true : false 

    if (activeIdx === changeIdx) 
    return 

    var chosenSlide = $('.orbit .orbit-slide').filter(function (index) { 
    return index === changeIdx 
    }) 

    $('.orbit').foundation('changeSlide', isLTR, chosenSlide, changeIdx) 
})