Mam dane wejściowe, które obecnie stają się przezroczyste, gdy użytkownik naciśnie klawisz shift (keydown) i wiąże słuchacza dla klawisza shift, podnosząc go oklawisz Shift jest ignorowany po naciśnięciu innego klawisza, słabego klawisza Shift. Jak wykryć, kiedy jest wydany?
tj.
$('#foo').keydown(function(){
if(event.which==16){
//make #foo transparent
$(this).keyup(function(){
if(event.which==16){
//return #foo to its former glory
$(this).unbind('keyup');
}
});
};
})
Działa to dobrze, gdy w międzyczasie między naciśnięciem a zwolnieniem klawisza Shift nie są naciskane żadne znaki. Problem polega na tym, że po przesunięciu w dół i naciśnięciu innego klawisza wydaje się, że klawisz Shift został zupełnie zapomniany. Po zwolnieniu klawisza Shift nie zostanie uruchomione żadne naciśnięcie klawisza.
Próbowałem wywołać "fałszywy" klucz keidown z właściwością .which
ustawioną na 16, aby przesunąć go we właściwym kierunku po naciśnięciu innych znaków, ale bez skutku.
Wszelkie sugestie będą bardzo mile widziane!
Brakuje parametru "event". Przypuszczam, że to tylko literówka w tym przykładowym skrypcie? – Bergi
+1 Za używanie "biednego klawisza shift" w tytule – Pattle
Po naprawieniu drobnego błędu, [działa bezbłędnie dla mnie] (http://jsfiddle.net/H6Tft/). Jakiej wersji jQuery i przeglądarki [wersja] używasz? – Bergi