Hemos visto muchas técnicas para definir y tratar eventos en jQuery a lo largo de los artículos anteriores del Manual de
jQuery. Para seguir explorando las posibilidades de este framework Javascript vamos a aprender ahora a definir eventos
"live". Es algo así como una definición de evento "en directo" o durante toda la "vida" de la página, es decir, una definición
de un evento sobre los elementos actuales y futuros que casen con un selector.
El método live() funciona de manera similar al método bind() de jQuery, con la particularidad que la asignación del evento es
"dinámica" y afecta no sólo a los elementos que casen con el selector en el momento de la invocación, sino también todos
los elementos que se puedan definir en un futuro y que casen con ese selector.
No sé si se habrá podido entender exactamente lo que se consigue con live(), pero lo podemos ver con un ejemplo sencillo
que lo aclarará todo. Veamos esta sentencia:
$(".miclase").bind("click", mifuncion);
Está definiendo un evento "click" sobre todos los elementos de la clase (class de CSS) "miclase". Hasta aquí ya debemos de
conocer todos esta el método bind(), por lo que no debería haber ningún problema, pero ahora veamos esta misma
sentencia pero utilizando el método live().
$(".miclase").live("click", mifuncion);
Esto sirve para lo mismo que hacíamos con bind(), pero además afectará a todos los elementos que puedan tener la clase
"miclase" en el futuro y no sólo en el momento que se ejecuta esa sentencia.
¿Cómo puede haber otros elementos de esa clase en el futuro? Pues simplemente porque los crees dinámicamente con
jQuery o porque asignes dinámicamente una clase CSS, u otro atributo, a un elemento que no la tenía, o que traigas por Ajax
un contenido y que tenga elementos que casen con el selector, etc.
No hay comentarios:
Publicar un comentario