Плагин Loopcounter js щелкает при загрузке - PullRequest
0 голосов
/ 20 февраля 2020

Я реализовал этот простой js счетчик плагинов, который я нашел здесь , все работает отлично, но каждый раз, когда я загружаю другую страницу на той же странице, где находится счетчик, как только содержимое рендеринга счетчик будет начать мерцать и не работает правильно. Если я перезагрузлю страницу, она снова начнет работать должным образом.

jQuery(document).ready(function($){
    window.loopcounter = function( idWarp ) {
        if(typeof idWarp!= 'undefined'){
            var date = $('.'+idWarp).data('date');
            if(typeof date != 'undefined'){
                var start = new Date( date.replace(/-/g, "/") ),
                end   = new Date(),
                diff  = new Date( start - end ),
                time  = diff/1000/60/60/24;

                var day = parseInt(time);
                var hour = parseInt( 24 - (diff/1000/60/60)%24 );
                var min = parseInt( 60 - (diff/1000/60)%60 );
                var sec = parseInt( 60 - (diff/1000)%60 );

                counterDate(idWarp,day,hour,min,sec);

                var interval = setInterval(function () {
                    if( sec==0 && min!=0 ){
                        min--;
                        sec = 60;
                    }
                    if(min == 0 && sec == 0 && hour!=0 ){
                        hour--;
                        min = 59;
                        sec = 60;
                    }
                    if(min == 0 && sec == 0 && hour == 0 && day!=0 ){
                        day--;
                        hour = 23;
                        min = 59;
                        sec = 60;
                    }
                    if(min == 0 && sec == 0 && hour == 0 && day==0 ){
                        clearInterval(interval);
                    }else{
                        sec--;
                    }
                    counterDate(idWarp,day,hour,min,sec);
                }, 1000 );

                function counterDate(id,day,hour,min,sec){
                    if (time < 0) { day = hour = min = sec = 0; }
                    $( '.'+id+' .counter-days').html( counterDoubleDigit(day) );
                    $( '.'+id+' .counter-hours').html( counterDoubleDigit(hour) );
                    $( '.'+id+' .counter-minutes').html( counterDoubleDigit(min) );
                    $( '.'+id+' .counter-seconds').html( counterDoubleDigit(sec) );
                }
                function counterDoubleDigit( arg ){
                    if( arg.toString().length <= 1 ){
                        arg = ('0' + arg).slice(-2);
                    }
                    return arg;
                }
            }
        }
    }
});

Я включаю этот файл. js перед закрытием моего тега, а затем после этого я вызываю плагин так:

<script type="text/javascript">
    $(document).ready(function(){
        loopcounter('first-counter');
        loopcounter('second-counter');
    });
</script>

Любая помощь будет по достоинству оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...