Я реализовал этот простой 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>
Любая помощь будет по достоинству оценена.