Howto:基于点击事件(jQuery)暂停和播放flexslider

sle*_*per 10 javascript jquery jquery-plugins flexslider

  1. 我正在尝试将slider.pause()slider.play()事件绑定到我的按钮(请参阅下面的代码).
  2. 除非我单击播放按钮两次在滑块运行时单击播放按钮,否则它会起作用.
  3. 然后它似乎运行另一个实例(或某事),因为它以两倍的速度运行,暂停按钮不再停止滑块

问题:有没有办法在调用之前测试滑块是否正在运行,slider.play()或者是在错误的位置调用pause()和/或play()?

请指教.

$(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();                      
            });
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

小智 20

尝试:

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

  • 这应该是公认的解决方案. (3认同)

Kyl*_*yle -1

7 个月前的问题,但是是的,start每次动画开始时,flexslider 上的属性都会触发。

所以上面的代码是绑定重新绑定点击事件。

相反,你想要类似的东西:

        $('.icon-pause').click(function(){
            $('#your_slider_id').pause();
        });
Run Code Online (Sandbox Code Playgroud)

你可以把它放在你的页面初始化函数中——或者任何地方,只是不在 flexslider 初始化中。

(当然.play()也是一种方法。)