2013-06-26 5 views
8
  1. Ich versuche, die slider.pause() und slider.play() Ereignisse meine Tasten zu binden (siehe Code unten).
  2. Es funktioniert , wenn ich die Taste zweimal Play klicken oder klicke ich auf die Play-Taste während der Schieber läuft.
  3. Dann scheint es andere Instanz (oder etwas) zu laufen, wie es mit der doppelten Geschwindigkeit läuft und die Pause-Taste bricht nicht mehr Schieber

Frage: Gibt es eine Möglichkeit, ob der Schieber zu testen läuft vor slider.play() oder sind die Pause() und/oder spielen() ruft an der falschen Stelle nennen?Howto: Pause und Wiedergabe flexslider basierend auf Click-Ereignis (jQuery)

Bitte beraten.

$(document).ready(function(){ 
    $('.flexslider').flexslider({ 
     animation: "fade", 
     slideshowSpeed: 2000, 
     pauseOnHover: false, 
     touch: true, 
     controlsContainer: ".fs-container", 
     controlNav: true, 
     manualControls: ".flex-control-nav li", 
     start: function(slider) { 
      $('.icon-pause').click(function(){ 
       slider.pause(); 
      }); 

      $('.icon-play').click(function(){ 
       slider.play();      
      }); 
     } 
    }); 
}); 

Antwort

2

7 Monate alte Frage, aber ja die start Eigenschaft auf flexslider Brände jedes Mal, wenn eine Animation beginnt.

So ist der Code, den Sie oben haben verbindlich das Ereignis klicken rebinding.

Stattdessen wollen Sie so etwas wie:

 $('.icon-pause').click(function(){ 
      $('#your_slider_id').pause(); 
     }); 

Und Sie würden diese init-Funktionen auf Ihrer Seite setzen - oder überall, nur nicht in der flexslider Initialisierung.

(Natürlich .play() ist auch eine Methode.)

16

Versuchen:

$('.flex-slider').flexslider('pause'); und $('.flex-slider').flexslider('play');.

+2

Dies sollte die akzeptierte Lösung. – roNn23

+0

Dies funktioniert für mich – exoslav

Verwandte Themen