2011-05-03 31 views
8

Me preguntaba cómo se puede hacer .keyup() y .click() para el mismo #id?jQuery KeyUp y haga clic en

es decir esencialmente que desea validar el #id cuando tanto el usuario intenta golpear entrar o pulsa el botón de #search.

Muchas gracias

Respuesta

17
$('#foo').bind('click keyup', function(event) { 
    ... 

que tendrá que añadir un poco de lógica, ya que los cambios de tipo de evento , pero debería funcionar con suficientes bloques if.

+0

Inicialmente pensé esto también, pero no parece que el OP realmente quiera vincular varios eventos a un objeto DOM, sino que tenga múltiples eventos en múltiples objetos que invoquen el mismo código. – justkt

+0

Ah, eso parece correcto. La respuesta de @Neal es más apropiada entonces. – Blender

+0

hola - sí muchas gracias. el objetivo es invocar múltiples eventos en múltiples objetos? – Tom

3

bien que puede hacer:

 $(document).keydown(function(objEvent) { 
      if (objEvent.keyCode == 13) { //clicked enter 
       $('#search').click(); //do click 
      } 
     }) 

     $("#search").click(function(e){/*click fn*/}) 

se ejecutará el clic en ENTER Pulse

2
$("#id").click(validate).keyup(function(event) 
{ 
    if (event.keyCode == '13') validate(); 
}); 
function validate() { ... validate $(this).val(); ... } 
2

me gustaría ir para algo como esto:

function validate(element) { 
    // your validation stuff goes here 
} 

$('#id').keyup(function(event) { 
    if (event.keyCode == 13) { 
     validate(this); 
    } 
}).click(function() { 
    validate(this); 
}); 
1

El nuevo jQuery ofrece la propiedad, que en el caso de comprobar qué tecla se ha presionado para el yo puede hacer algo como esto ahora:

$(#id").on('keyup',function(e){ 
    if (e.which==13 || e.which==9) doSomething(this); //Enter or Tab key 
}); 
Cuestiones relacionadas