я бы не активировал их с таким интервалом, как вы пытаетесь, а скорее сразу при создании нового элемента, просто вызовите функцию, подобную этой
function activate_timeago(el){
$(el).each(function(){
if (!$(this).hasClass('processed')){
$(this).timeago();
$(this).addClass('processed');
}
});
}
после того, как обратный вызов ajax для извлечения новых элементовготово, просто позвоните:
var elements = $('#container .new');
activate_timeago(elements);
edit , чтобы не было путаницы, селектор $('#container .new')
не является jQuery по умолчанию, new
является классом css, как и любой другой класс,вы можете добавить класс new
к вашим элементам, когда вы делаете ajaxcall, или вы можете выбрать их другим способом, так как вы, вероятно, просто добавили их в DOM в вашем обратном вызове ajax, вы уже могли бы иметь их в массиве.. end edit
но, если вы действительно хотите продолжить на интервальной части, используйте это:
function activate_timeago(){
setInterval(function(){
$('.timeago:not(.processed)').each(function(){
$(this).timeago();
$(this).addClass('processed');
}
});
},60000);
}
эта функция будет вызываться только один раз на страницезагрузить, минус второй вариант, они не превращаются в timeago сразу, а только после следующего попадания интервала.