miércoles, 18 de julio de 2012

Controlando la ejecución simultánea de los eventos click y focus

Puede que el título resulte algo confuso, así que trataré de explicarlo detalladamente.

Tenemos una serie de campos de texto y queremos intervenir el evento focus y click de uno de ellos para que realicen una misma acción. El problema llega cuando pulsamos sobre susodicho campo, no encontrándose éste enfocado, lo cual causa la doble ejecución de nuestra acción. Esto se debe a que al pulsar sobre el campo, además de llamar al evento click, se llama al evento focus, y este último en primer lugar. Tal escenario lo podéis encontrar en http://jsfiddle.net/yeikos/F4Ewe/.

Para controlar la ejecución simultánea de los eventos click y focus (ahora sí jeje), podemos implementar una sencilla solución, a la vez que eficaz, y que consiste en intervenir el evento mousedown, que es llamado antes que focus y click, para poder tener cierto control sobre la ejecución.

El escenario con la solución ya implementada se encuentra en http://jsfiddle.net/yeikos/hWkAK/, y el código fuente de la solución en https://gist.github.com/3135853.

No hay comentarios:

Publicar un comentario en la entrada