2010-08-05 23 views

Trả lời

9

Đối với chạy plugins (những thứ không xử lý sự kiện có trụ sở), bạn vẫn có thể sử dụng .livequery() plugin, như thế này:

$('.selector').livequery(function() { 
    $(this).timeago(); 
}); 

Nếu đó là một event handler, .live() hoặc .delegate() công trình, hoặc nếu nó là một plugin bạn cũng có thể chạy các plugin trên nội dung tải, ví dụ:

$.ajax({ 
    //options... 
    success: function(data) { 
    //do stuff 
    $('.selector', data).timeago(); 
    } 
}); 

này chạy các plugin trên selector đó, nhưng chỉ cho các phần tử đã trả về trong phản hồi AJAX đó, bằng cách sử dụng đối số ngữ cảnh của $(selector, [context]).

+0

Cảm ơn, Nick! Tôi sẽ cố gắng vào ngày mai ... – Alfonso

+0

Nick: Có bất kỳ tác hại nào khi gọi '$ ('. Selector '). Livequery (function() {$ (this) .timeago();}); 'sau khi đã ràng buộc nó ban đầu trong doc sẵn sàng (sử dụng 'jQuery (" abbr.timeago "). timeago();')? Hoặc về cơ bản điều này giống như làm mới các dấu thời gian bằng cách sử dụng livequery? – iwasrobbed

+0

Một plugin jQuery (ví dụ: timeago) sẽ chỉ được khởi tạo trên một phần tử một lần, vì vậy hãy gọi nó nhiều lần sẽ không gây ra bất kỳ sự cố nào. Ngược lại, các trình xử lý sự kiện ràng buộc nhiều lần có thể gây ra các vấn đề ('$ (myElement) .on ('click', ...);') – NDM

Các vấn đề liên quan