Es raro que realmente necesite un complemento como livequery
. Probablemente la única vez que realmente lo necesite es si necesita reaccionar a los cambios en el DOM realizados por algún otro código jQuery que no puede modificar.
Mientras .live()
hace uso delegación caso, lo hace en el nivel document
, lo que significa que necesita para procesar todos los eventos en la página para ver si coinciden con los selectores provistos según el tipo de evento.
Una mejor alternativa (IMO) para ambos es el método delegate()
(docs) que usa delegación de eventos como .live()
, pero le permite restringirlo a una parte específica de la página.
$('#someContainer').delegate('a.someButton', 'click', function() {
// do something when an "a.someButton" inside "#someContainer" is clicked
});
Tenga en cuenta que los métodos de delegación de eventos responden a los eventos del navegador, no a los cambios en el DOM. Si necesita ejecutar algún código basado en un cambio en el DOM que ha realizado, necesita ejecutar ese código cuando realiza esa alteración al DOM.
Como se señala en la respuesta de "patrick dw" a continuación, el .live() y .delegate() son casi integración del mismo autor de livequery en el núcleo. Consulte su blog aquí: http: // brandonaaron. net/blog al menos tal como lo entiendo :) –