2012-01-06 1 views
0

Я попробовал несколько способов, но нет возможности: http://timeago.yarp.com/Как использовать JQuery timeago плагин Yarp с getjson & .html

$(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); 
}); 

}); 

ответ

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

@RonnieChesterLynwood: Спасибо :) – Tadeck

0

Попробуйте вставить эту строку кода:

... 
$('.fdiv2 .fdtl').html('<abbr class="timeago"></abbr'); 
$('abbr.timeago').timeago(); 
... 
Смежные вопросы