2013-10-28 42 views
0

我正在使用timeago plugin,我需要自动更新以便在页面传递新时间时将其更新为实时更新timeago

这里是默认的JQuery我们要求把我们的网页:

jQuery(document).ready(function() { 
    jQuery("abbr.timeago").timeago(); 
}); 

我现在的问题是,当我通过新的时间从使用Ajax的PHP文件,它不会使用timeago插件(它保留为日期,2013-10-28,而不是1 second ago等)。

这里是阿贾克斯我现在所拥有的:

<script src="assets/js/jquery.js"></script> 
<script src="assets/js/timeago.js"></script> 
<script type="text/javascript"> 

$(document).ready(function() { 
    $(document).on("submit", "form", function(event) { 
     event.preventDefault(); 
     $.ajax({ 
      url: 'post.php', 
      type: 'POST', 
      dataType: 'json', 
      data: $(this).serialize(), 
      success: function(data) { 
       $(".container").html(data.message); 
      } 
     }); 
    }); 
}); 

$(document).ready(function() { 
    $("abbr.timeago").timeago(); 
}); 

</script> 

post.php文件阿贾克斯称为:

<?php 

    $code = '<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>'; 

    $array = array('message' => $code); 

    echo $array; 

?> 

当AJAX调用函数时,它返回$code HTML,但它打印出July 17, 2008,而不是5 years ago

回答

1

您需要在您的课程中指定一些加载时间(可能为loadedmodified)或元素的title属性中的日期/时间。检查你的HTML

例如,这样的:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr> 

将成为这样的:

<abbr class="timeago" title="2008-07-17T09:24:17Z">about 5 years ago</abbr> 
+0

我现在的问题是,当我使用Ajax传递一个新的时间从一个PHP文件,它赢得不使用timeago插件(它保留日期,“2013-10-28”,而不是“1秒前”等)。 – Burrows

+0

如果您在DOM准备好时应用'timeago'插件,那么它将被附加到当时存在的所有元素。如果通过AJAX调用将新元素加载到DOM中,'timeago'将不适用于它们,除非您专门应用它。 – 2013-10-28 23:53:56

+0

我将如何专门应用它?我在我的帖子中添加了部分代码。 – Burrows