0

找到了播放和停止滑块的解决方案。但现在问题出在我的下一个和上一个链接上。这些链接有时不显示任何图像。 我的代码在 http://jsfiddle.net/yogesh84/ftkLd/12/

var slides;
        var cnt;
        var amount;
        var i;
        var x;
        var timer;
        slides = jQuery('#my_slider').children();
        cnt = jQuery('#counter');
        amount = slides.length;
        i=amount;

 cnt.text(i+' / '+amount);
        function run_prev() {
          jQuery(slides[i]).fadeOut(1000);
            i--;

            if (i <= 0) i = amount;
            jQuery(slides[i]).fadeIn(1000);
            // updating counter
            cnt.text(i+' / '+amount);

        }
        x=0;
        function run_next() {
            // hiding previous image and showing next
            jQuery(slides[x]).fadeOut(1000);
            x++;
            if (x >= amount) x = 0;
            jQuery(slides[x]).fadeIn(1000);
            cnt.text(x+1+' / '+amount);

        }
        /***********start and stop functions***************/
        function run() {
        // hiding previous image and showing next
        jQuery(slides[x]).fadeOut(1000);
        x++;
        if (x >= amount) x = 0;
        jQuery(slides[x]).fadeIn(1000);
        timer = setTimeout(run,2000);
        }
        function MySlider() {
             timer = setTimeout(run,2000);
        }

        function stoper() {
              clearTimeout(timer);
        }

/***********end start and stop functions***************/


        function slide_show(){
            var timer;
                if(jQuery('#slide_show').html()=='Play Slideshow')
                {

                    jQuery('#slide_show').html('Stop Slideshow');
                     MySlider();
                }
                else
                { 
                   jQuery('#slide_show').html('Play Slideshow');
                   stoper()
                }
            }



// custom initialization

    jQuery('#prev2').on("click",run_prev);
    jQuery('#next2').on("click",run_next);
    jQuery('#slide_show').on("click",slide_show);
4

1 回答 1

0

我想你忘了设置 timer

你在顶部声明: timer但它永远不会被填满。

所以我认为你应该这样做:

timer =  setTimeout( run, inetrval );

也将函数放在 Run() 之外

function run() {
}

if ( inetrval > 0 ) {
    alert( inetrval );
    run();
    timer = SetTimeOut( run, inetrval )
}
于 2013-10-11T13:49:53.383 回答