我正在使用来自http://keith-wood.name/countdown.html的jquery countdown.js进行倒计时过程。它的工作正常。问题出在onExpiry功能上。 请参考以下代码,
recursivecall = setTimeout(function () {
get_last_auction();
}, 10000);
function get_last_auction() {
jQuery.ajax({
type: "POST",
url: "ajax_get_lastauction",
dataType: 'json',
success: function (response) {
jQuery('.countbox').countdown({
layout: '<b>{d<}{dnn}D:{d>}' + '{hnn}:{mnn}:{snn}</b>',
timeSeparator: ':',
onExpiry: function () {
if(response.val > 10) {
//Mycode
}
},
until: response.clock
});
}
});
}
在这里我注意到,虽然recursivecall为每次调用返回“response.clock”的不同值,但是计时器只考虑初始值并开始倒计时。
但是,我在条件检查的到期函数中需要当前更新的值(来自我的ajax调用)for“response.val”。但它只考虑“response.val”的初始值(当设置定时器时)。是否可以在onExpiry中获取新值?请帮忙。
答案 0 :(得分:0)
请尝试此操作,只是尝试使用complete
而不是success
,因为它是异步功能。让我知道现在是否有效。
function get_last_auction() {
var value = null;
jQuery.ajax({
type: "POST",
url: "ajax_get_lastauction",
dataType: 'json',
success: function (response) {
value = response
},
complete: function(){
jQuery('.countbox').countdown({
layout: '<b>{d<}{dnn}D:{d>}' + '{hnn}:{mnn}:{snn}</b>',
timeSeparator: ':',
onExpiry: function () {
if(value.val > 10) {
//Mycode
}
},
until: value.clock
});
}
});
}
<强>更新强>
如果无效,请使用alwaysExpire: true
。阅读here。