在jQuery Ajax中分配值全局变量的问题

时间:2014-06-10 00:01:37

标签: javascript jquery ajax json jquery-ajaxq

我有一个脚本和jQuery Ajax调用,如:

<script type="text/javascript">
 $(document).ready(function() {
  var timer;
  $.ajax({
     type: 'POST',
         url: 'closettime.php',
         success: function( res ){
         var json = JSON.parse(res);
             timer = json["datecounter"];
             alert(timer);
         }
    });   
 var date = new Date(timer);
 var now   = new Date();                
 var diff  = date.getTime()/1000 - now.getTime()/1000;
 var clock = $('.clock').FlipClock(diff, {
    clockFace: 'HourlyCounter',
    countdown: true,
    showSeconds: true
 });

});
</script>

现在我的问题是我无法在ajax成功回调中将var date = new Date(timer);中的时间值分配为

timer = json["datecounter"];
你可以告诉我如何解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:0)

问题很可能是在完成分配日期变量的代码之后请求才完成,因此存在未分配计时器的错觉。将所有依赖于timer变量的代码移动到回调中,这应该有效,或者至少解决其中一个问题。

<script type="text/javascript">
$(document).ready(function() {
    $.ajax({
       type: 'POST',
       url: 'closettime.php',
       success: function( res ){
           var json = JSON.parse(res);
           var timer = json["datecounter"];
           alert(timer);
           var date = new Date(timer);
           var now   = new Date();                
           var diff  = date.getTime()/1000 - now.getTime()/1000;
           var clock = $('.clock').FlipClock(diff, {
              clockFace: 'HourlyCounter',
              countdown: true,
              showSeconds: true
           });
       }
    });
});
</script>