如何使用Yarp的jQuery timeago插件与getjson& .html

时间:2012-01-06 02:26:42

标签: jquery timeago

我尝试了一些方法,但没有机会:http://timeago.yarp.com/

$(function() {
$('abbr.timeago').timeago();
    $('.more').click(function() {
    $.getJSON('http://127.0.0.1:9987/test/c.php?callback=?', function(datas){
                $.each(datas, function(i, data) {       

                    $('.fdiv2 .fdtl').html('<abbr class="timeago"></abbr');             
            });         
        });
    $('.fdiv2 .fdtl').slideToggle(1000);
});

});

2 个答案:

答案 0 :(得分:1)

您必须在最近插入的元素上重新初始化timeago。同时缓存可缓存的内容(无需多次调用$('.fdiv2 .fdtl')):

$(function() {
    var el = $('.fdiv2 .fdtl'); // cache the element
    $('abbr.timeago').timeago();
    $('.more').click(function() {
        $.getJSON('http://127.0.0.1:9987/test/c.php?callback=?', function(datas){
            $.each(datas, function(i, data) {
                el.html('<abbr class="timeago"></abbr>');
                el.find('abbr.timeago').timeago();
            });
        });
        el.slideToggle(1000);
    });
});

还要确保您真的应该遍历datas - 如果它始终包含数组中的一个元素,则可以用$.each()替换var data = datas[0];调用。如果它有更多的元素并且你只想使用最后一个元素(这里看起来就是这种情况,但你没有向我们展示整个代码),那么你可以用var data = datas[datas.length-1];替换它(它将分配data变量的最后一个元素。

答案 1 :(得分:0)

尝试插入以下代码行:

...
$('.fdiv2 .fdtl').html('<abbr class="timeago"></abbr');
$('abbr.timeago').timeago();
...