jQuery añadió, con la versión 1.3 de jQuery, un método para gestionar los eventos llamado live()
. Dicho evento nos permite controlar los eventos de los elementos existentes y de los que están por crear.
Hasta ahora con jQuery teníamos que volver a añadir los eventos al crear nuevos elementos en nuestros scripts.
jQuery('<a href="...">Ejemplo</a>');
jQuery('a').bind('click', function(){ ... });
Con live()
esto es mucho más sencillo. Ya que únicamente se tendrá que lanzar una vez y al generar nuevos eventos que cumplan la condición del selector que indiquemos contendrán los eventos y funcionalidades especificadas para estos elementos.
jQuery('a').live('click', function(){ ... });
...
jQuery('body').append('<a href="...">Ejemplo</a>');
En este caso, el <a /> que generamos despues de live()
poseerá la funcionalidad descrita anteriormente mediante live()
.
Por desgracia, tenemos una limitación y es que no todos los eventos están soportados por la función y tendremos que conocer los que no son posible extender.
Soportados
click
dblclick
mousedown
mouseup
mousemove
mouseover
mouseout
keydown
keypress
keyup
No soportados
blur
focus
mouseenter
-
mouseleave
change
submit
die()
es el opuesto y se encarga de cortar la propagación de los eventos a nuevos elementos.
jQuery('a').live('click', function(){ ... });
...
jQuery('a').die('click', function(){ ... });
...
jQuery('body').append('<a href="...">Ejemplo</a>');
10 comentarios, 0 referencias
+
#