Cómo añadir eventos en jQuery de forma fácil y limpia

evento de mouseExiste una forma genérica y muy óptima de programar cualquier tipo de evento con jQuery. Sin necesidad de utilizar los eventos clásicos como click(), focus(), hover(), keypress(), etc. Y por supuesto sin necesidad de recurrir a los viejos atributos de JavaScript (onclick, onchange, onblur, etc), por lo que todo el código HTML queda libre de cualquier manejador de eventos.

Escuchando todos eventos con .on()

La clave de esta sencillez reside en un método de jQuery llamado .on(), que es más o menos equivalente al obsoleto .live(). Lo que hace es añadir un manejador de eventos genérico que podemos aplicar a cualquier clase de evento sobre uno o varios selectores de jQuery. La sintaxis es la siguiente:

.on( evento [, selector_de_elemento ] [, datos ], funcionManejadora(eventObject) )

Este método tendríamos que llamarlo de forma similar al ejemplo siguiente:

[javascript]

$(document).on("change",’#opciones’,function(){  …  });

[/javascript]

Generando código limpio

En el formulario (o donde queramos aplicarlo) no es necesario tocar nada, como mucho precisaremos de un selector válido para pasar como argumento de .on(). Además todos los eventos se pueden manejar simultáneamente, ya que este método de la API de jQuery permite usar varios selectores y varios eventos en la misma función.

Potencia y flexibilidad

Las posibilidades que ofrece .on() sobre el control de eventos facilitan muchísimo el desarrollo web de interfaces gráficas de usuario de cierta complejidad. Os recomendamos estudiar la documentación oficial, muy rica en ejemplos, para que le saquéis el mayor partido.

Por cierto, una gran ventaja que tiene esta filosofía es que permite actualizar el documento de forma totalmente asíncrona, muy útil cuando nuestra aplicación necesita refrescarse al sufrir modificaciones de estructura y contenido dinámicamente. Si ya habéis tocado ajax, seguro que también os habéis enfrentado a este problema.

Si te ha gustado, ¡comparte! ;)
TwitterFacebookGoogle+RedditDiggLinkedInStumbleUpon
4 Comentarios

Añade un comentario

Your email address will not be published. Required fields are marked *