2012-01-06 66 views

回答

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

你把那東西震撼了! – 2012-01-06 02:57:39

+0

@RonnieChesterLynwood:謝謝:) – Tadeck 2012-01-06 03:01:01

0

試着插入這行代碼:

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