Вы должны повторно инициализировать 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
переменная).