2010-08-05 9 views

Respuesta

9

Para ejecutar plugins (las cosas no controlador de eventos basados) todavía se puede utilizar el .livequery() plugin, así:

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

Si se trata de un controlador de eventos, .live() o .delegate() obras, o si es un plugin que también puede ejecutar los plugins de contenido cargado, por ejemplo:

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

Esto ejecuta el plugin en ese selector, pero solamente para elementos que regresaron en esa respuesta AJAX, utilizando el argumento de contexto $(selector, [context]).

+0

Gracias, Nick! Probaré esto mañana ... – Alfonso

+0

Nick: ¿Hay algún daño al llamar a '$ ('. Selector'). Livequery (función() {$ (esto) .timeago();});' después de vincularlo originalmente durante el documento listo (usando 'jQuery (" abbr.timeago "). timeago();')? ¿O es esto esencialmente como actualizar las marcas de tiempo usando livequery? – iwasrobbed

+0

Un complemento de jQuery (es decir, timeago) solo se inicializará en un elemento una vez, por lo que llamarlo varias veces no causará ningún problema. Por el contrario, la vinculación de controladores de eventos varias veces puede causar problemas ('$ (myElement) .on ('click', ...);') – NDM

Cuestiones relacionadas