Ho un input di testo, che diventa trasparente quando un utente preme shift (keydown) e lega un listener per il tasto shift che va suil tasto shift viene semplicemente ignorato dopo che un altro tasto è stato premuto, povero tasto shift. Come posso rilevare quando viene rilasciato?
ie.
$('#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');
}
});
};
})
Questo funziona bene quando non vengono premuti i caratteri nel frattempo tra deprimente e rilasciando il tasto shift. Il problema è che quando lo shift è giù e viene premuto un altro carattere, il tasto Maiusc sembra essere stato completamente dimenticato. Quando viene rilasciato il tasto Maiusc, non si attiva alcuna interruzione di chiave.
Ho tentato di attivare un keydown "falso" con la proprietà .which
impostata su 16, per spostare leggermente verso destra dopo la pressione di altri caratteri, ma senza successo.
Qualsiasi suggerimento sarebbe molto apprezzato!
Ti manca il parametro 'event'. Immagino che sia solo un refuso in questo script di esempio? – Bergi
+1 Per l'utilizzo di "tasto maiuscoletto" nel titolo – Pattle
Con il bug minore risolto, [funziona perfettamente per me] (http://jsfiddle.net/H6Tft/). Che versione di jQuery e browser [versione] stai usando? – Bergi