0

我尝试了一些方法但没有机会: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);
});

});
4

2 回答 2

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变量) .

于 2012-01-06T02:54:41.223 回答
0

尝试插入这行代码:

...
$('.fdiv2 .fdtl').html('<abbr class="timeago"></abbr');
$('abbr.timeago').timeago();
...
于 2012-01-06T02:50:21.043 回答