2009-07-22 9 views
11

Potrzebuję przechwycić zdarzenia klawisza Tab na niektórych wejściach dynamicznych, ale normalna składnia przy użyciu zdarzenia keypress nie wydaje się przechwytywać kodu klucza.jQuery: sposób przechwytywania klucza klawisza przy użyciu funkcji live()

$('input').live('keypress', function (e) { 
    if (e.which == 9) 
     alert('Tab pressed'); 
}); 

To wydaje się być łapanie 0 jako naciśnięcie klawisza, gdy idę przez debugger w Firebug bez względu na to, który klawisz naciskam.

Odpowiedz

25

Spróbuj z .keyCode zamiast Który:

$('input').live('keypress', function (e) { 
    if (e.keyCode == 9){ 
     alert('Tab pressed'); 
    } 
}); 

wydają się działać;)

8

Spróbuj nasłuchując keyup lub keydown zamiast keypress (per this SO post)

+1

Rzeczywiście. quirksmode ma również informacje na temat kompatybilności przeglądarek z poszczególnymi zdarzeniami i konkretnych dziwek przeglądarki z pewnymi kluczami. Zdecydowałem się na 'keydown' w moim kodzie. –

Powiązane problemy