【发布时间】:2017-09-21 17:10:40
【问题描述】:
我想制作一个从 Ajax 调用中获取其值的计时器。这是我的代码:
function timer(seconds) {
var days = Math.floor(seconds/24/60/60);
var hoursLeft = Math.floor((seconds) - (days*86400));
var hours = Math.floor(hoursLeft/3600);
var minutesLeft = Math.floor((hoursLeft) - (hours*3600));
var minutes = Math.floor(minutesLeft/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = hours + "tundi " + minutes + "minutit " + remainingSeconds+ "sekundit";
if (seconds == 0) {
clearInterval(countdownTimer);
document.getElementById('countdown').innerHTML = "Completed";
} else {
seconds--;
console.log(seconds);
}
var countdownTimer = setInterval('timer()', 1000);
}
$.ajax({
type: "GET",
url: "AjaxHandler.php",
dataType: "JSON",
data:{action:"gym"},
success: function(result){
timer(result); // receiving php strtotime(), value something like 150000
},
error:function(){
console.log("Error: Unknown Error")
}
});
现在的问题是我无法在范围之外获取countdownTimer 的值,所以我将countdownTimer 放在了函数内部。但这不起作用,我知道这一点。
向 html 对象声明 seconds 值是否有效?赞$("#test").val(response)
所以我的问题是:我怎样才能让这个计时器工作?
【问题讨论】:
-
好吧
timer() -
并且仅供参考:setTimeout 不准确。
标签: javascript jquery ajax timer