我正在使用timeago plugin,我需要自动更新以便如果新的时间传递到页面,则会更新它们。
这是我们要求在页面上放置的默认JQuery:
jQuery(document).ready(function() {
jQuery("abbr.timeago").timeago();
});
我目前的问题是,当我使用Ajax从PHP文件传递新时间时,它不会使用timeago插件(它保留为日期2013-10-28
,而不是1 second ago
等等。)
这是我现在拥有的Ajax:
<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>
Ajax调用的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
。
答案 0 :(得分:1)
您需要在类(loaded
或modified
中)指定一些加载时间,或者在元素的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>