clearInterval не сбрасывает функцию автоматического нажатия, установленную setInterval? - PullRequest
0 голосов
/ 28 апреля 2019

Я написал собственное слайд-шоу в jquery.

Я вызвал функцию setInterval на слайд-шоу, чтобы автоматизировать кнопки prev / next, чтобы слайд-шоу отображало новый слайд каждые 6 секунд, когда кнопка не нажата, однако, когда я пытаюсь очистить интервал, когда предыдущая / следующая кнопки нажимаются, интервал не сбрасывается до 0?

Вот мой код jquery

Ползунок доступен для просмотра на testsiteclash.co.uk

Заранее спасибо

$(document).ready( function ($) {


                var slider = $("#jquery-slideshow"), // cache the slider object for later use
                item_width = slider.parent().outerWidth(); 

                $( window ).on( "resize", adjust );
                adjust();


                if ( slider.children("li").length > 1 ) {
                    // Add previous/next buttons
                    slider.parent().append("<a href=\"#\" id=\"btn-prev\"><i class=\"fa fa-angle-left\"></i><span>Previous</span></a><a href=\"#\" id=\"btn-next\"><i class=\"fa fa-angle-right\"></i><span>Next</span></a>");


                    slider.parent().on("click", "a#btn-prev", function(e){
                        e.preventDefault();

                        slider.children("li:last").prependTo( slider );
                        slider.css("left", -item_width);

                        slider.animate({
                            left: 0
                        }, 1000, "swing");
                        clearInterval(slideInt.timer);

                    }); 


                    slider.parent().on("click", "a#btn-next", function(e){
                        e.preventDefault();

                        slider.animate({
                            left: -item_width
                        }, 1000, "swing", function(){
                            slider.children("li:first").appendTo( slider );
                            slider.css("left", 0);
                        });
                        clearInterval(slideInt.timer);
                    });
                } 

                function adjust(){
                    item_width = slider.parent().outerWidth();
                    slider.children("li").width( item_width ).parent().width( item_width * slider.children("li").length );
                }

            });

        var yourinterval = 6000; 
        var slideInt = {timer:  0};
        slideInt = setInterval(function(){$('a#btn-next').click(); }, yourinterval);

        $(document).ready(function() {
            setInterval(slideInt);
        });
...