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