Foros del Web » Programando para Internet » Jquery »

Misma acción para dos eventos con jquery. ¿como?

Estas en el tema de Misma acción para dos eventos con jquery. ¿como? en el foro de Jquery en Foros del Web. Hola, Soy nuevo en jQuery y tengo esta duda. Supongo que se podrá implementar de algún modo para no repetir código sin tener que hacer ...
  #1 (permalink)  
Antiguo 12/03/2012, 04:32
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Misma acción para dos eventos con jquery. ¿como?

Hola,

Soy nuevo en jQuery y tengo esta duda.
Supongo que se podrá implementar de algún modo para no repetir código sin tener que hacer una función para dicho código.

Código Javascript:
Ver original
  1. $('form input').live('keyup blur', function() {
  2.       //hacer X
  3.  });
  4.  
  5.  $('form textarea').live('keyup blur', function() {
  6.       //hacer X
  7.  });

No se pueden juntar ambos eventos en uno solo de algún modo de tal modo que fuera algo como:

Código Javascript:
Ver original
  1. $('form input form textarea').live('keyup blur', function() {
  2.       //hacer X
  3.  });

GRacias
  #2 (permalink)  
Antiguo 12/03/2012, 05:20
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Misma acción para dos eventos con jquery. ¿como?

Código Javascript:
Ver original
  1. // #1
  2. var myHandler = function() {
  3.       //hacer X
  4. };
  5.  
  6. $('form input').live('keyup blur', myHandler);
  7. $('form textarea').live('keyup blur', myHandler);
  8.  
  9. // #2
  10. $('form input, form textarea').live('keyup blur', function() {
  11.       //hacer X
  12. });

Una buena ocasión para utilizar delegates, no te parece?
__________________
blog | @aijoona

Etiquetas: eventos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.