0

我正在使用来自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        
                    }); 
    }
  });                       

 }

在这里我注意到,虽然递归调用为每次调用返回不同的“response.clock”值,但计时器只考虑初始值并开始倒计时。

但是,我需要到期函数中“response.val”的当前更新值(来自我的ajax调用)以进行条件检查。但它只考虑“response.val”的初始值(设置定时器时)。是否可以在 onExpiry 中获取新值?请帮忙。

4

1 回答 1

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. 在这里阅读。

于 2012-09-12T05:39:18.027 回答