2017-04-15 9 views
0

JQuery로 CountDown 시계를 마무리하려고합니다. Evrything 내가 카운트 다운이 0에 도달하면 다시로드 페이지를 만들 척 마지막 부분을 제외하고 잘 작동하는 것은 내가 가지고 무엇을 :JQuery : Countdown이 0에 도달하면 페이지 새로 고침

var iDiv = document.createElement('div'); 
iDiv.id = 'countdown'; 
iDiv.className = 'countdown'; 

:

1 우선 용기를 크레타 2 지금 시계

// Countdown Clock JQuery 
function startTimer(duration, display) { 
    var timer = duration, minutes, seconds; 
    setInterval(function() { 
     minutes = parseInt(timer/60, 10); 
     seconds = parseInt(timer % 60, 10); 
     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 
     display.text(minutes + ":" + seconds); 
     if (--timer < 0) { 
      timer = duration; 
     } 
    }, 1000); 
} 
// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
      location.reload(); 
     } 
}); 

글쎄, 모든 것이 잘 작동하지만,이 마지막 비트 :

if (fiveMinutes === 0) { 
    location.reload(); 
    } 

페이지가 0에 도달하면 카운트 다운이 다시 수행되지 않습니다. 어떤 아이디어?

답변

0

당신의 setTimeout하여 다시로드 할 수 있습니다 :

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    setTimeout(function(){ location.reload() }, fiveMinutes*1000); 
}); 
+0

대단히 감사합니다. 도달 한 해결책보다 훨씬 더 우아한 방법이었습니다. 나는 카운터가 0 (00:00)에 도달하기를 기다리는 또 다른 var를 추가했으며, 작동에도 불구하고 단지 추악한 패치였습니다. VAR 만료 = window.setInternal을 (함수() { ($는 (IF)의 길이> 0) { document.location.reload (TRUE); } "* 00), (00 '포함". }, 1000); –

+0

@ KimJong-un는 당신의 문제를 해결합니까? –

0

은 IF 조건은 스크립트의 실행 첫 동안 한 번만 실행됩니다. 이 시점에서 fiveMinutes 변수는 60 * 5 (300)이며 === 0 조건과 일치하지 않습니다.

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
     location.reload(); 
    } 
}); 

타이머가 0으로 실행되는지 확인해야합니다.

setInterval(function() { 
    minutes = parseInt(timer/60, 10); 
    seconds = parseInt(timer % 60, 10); 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
    display.text(minutes + ":" + seconds); 
    if (--timer < 0) { 
     timer = duration; 
    } 
}, 1000); 

기능 타이머 값이 업데이트되기 때문에 기능 검사가 실행됩니다.

이 정보가 도움이되기를 바랍니다.