如何使用jQuery timeago进行实时更新?

fan*_*ncy 4 javascript jquery timeago

我有一个值,011-04-29T14:55:33.000Z这个值被推入jQuery模板.我使用timeago将日期转换为已用时间,但在写入模板后,随着时间的推移,它无法更新.

我将如何实现自动更新的内容?

mu *_*ort 6

假设你从这开始(来自timeago主页):

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Run Code Online (Sandbox Code Playgroud)

现在,timeago插件将在重写内容时更改标题.您需要做的就是跟踪其他地方的时间戳,将其放回title属性中,然后重新运行插件.像这样的东西:

<abbr
    class="timeago"
    title="2008-07-17T09:24:17Z"
    data-ts="2008-07-17T09:24:17Z"
>July 17, 2008</abbr>
Run Code Online (Sandbox Code Playgroud)

会变成这样的:

<abbr
    class="timeago"
    title="July 17, 2008"
    data-ts="2008-07-17T09:24:17Z"
>2 years ago</abbr>
Run Code Online (Sandbox Code Playgroud)

而当你想更新它,只是把data-tstitle,并重新运行该插件:

$('.timeago').each(function() {
    var $this = $(this);
    $this.attr('title', $this.data('ts'));
}).timeago();
Run Code Online (Sandbox Code Playgroud)

如果您使用的是较旧的jQuery,则可能需要使用它$this.attr('data-ts')来代替$this.data('ts').

  • 我不确定这是OP所要求的,但我不得不使用`$('.timeago').timeago('update',"2008-07-17T09:24:17Z");`改变它用于计算时间的单词时间. (2认同)