1

次のようなスクリプトと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>

今私の問題は、次のようvar date = new Date(timer);にajax成功コールバックで 時間値を割り当てることができないことです

timer = json["datecounter"];

これを修正する方法を教えてください。ありがとう

4

1 に答える 1

0

この問題は、日付変数を割り当てるコードが完了するまでリクエストが完了しない可能性が高いため、タイマーが割り当てられていないという錯覚があります。タイマー変数に依存するすべてのコードをコールバックに移動すると、これが機能するか、少なくとも問題の 1 つが修正されます。

<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>
于 2014-06-10T00:07:38.110 に答える