È raro che sia necessario un plug-in come livequery
. Probabilmente l'unica volta che ne hai davvero bisogno è se devi reagire alle modifiche apportate al DOM fatte da qualche altro codice jQuery che non puoi modificare .
Mentre .live()
fa delegazione uso evento, lo fa a livello document
, il che significa che ha bisogno di elaborare tutti eventi nella pagina per vedere se corrispondono i selettori previste per tipo di evento.
Un'alternativa migliore (IMO) a entrambi è il metodo delegate()
(docs) che utilizza la delega di eventi come .live()
, ma consente di vincolarlo a una parte specifica della pagina.
$('#someContainer').delegate('a.someButton', 'click', function() {
// do something when an "a.someButton" inside "#someContainer" is clicked
});
Si noti che i metodi di delega degli eventi rispondono agli eventi del browser, non alle modifiche al DOM. Se hai bisogno di eseguire del codice in base a una modifica al DOM che hai creato, devi eseguire quel codice quando apporti la modifica al DOM.
Come indicato nella risposta di "patrick dw" di seguito, il .live() e .delegate() sono praticamente l'integrazione dello stesso autore di livequery nel nucleo - vedi il suo blog qui: http: // brandonaaron. net/blog almeno a quanto ho capito :) –