2010-08-05 7 views

risposta

9

Per l'esecuzione plugin (le cose non gestore di eventi a base) è ancora possibile utilizzare la .livequery() plugin, in questo modo:

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

Se si tratta di un gestore di eventi, .live() o .delegate() lavori, o se si tratta di un plugin può anche eseguire i plugin sul contenuto caricato, ad esempio:

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

Questo viene eseguito il plugin su quella di selezione, ma solo per gli elementi che sono tornati nella risposta AJAX, utilizzando l'argomento di contesto di $(selector, [context]).

+0

Grazie, Nick! Ci proverò domani ... – Alfonso

+0

Nick: C'è qualche danno nel chiamare '$ ('. Selector'). Livequery (function() {$ (this) .timeago();});' dopo averlo già associato originariamente durante il doc pronto (usando 'jQuery (" abbr.timeago "). timeago();')? O questo è essenzialmente come aggiornare i timestamp usando livequery? – iwasrobbed

+0

Un plugin jQuery (ad es .: timeago) verrà inizializzato su un elemento solo una volta, quindi chiamarlo più volte non causerà alcun problema. Al contrario, i gestori di eventi di binding più volte possono causare problemi ('$ (myElement) .on ('click', ...);') – NDM

Problemi correlati