Ho appena verificato le seguenti e ha funzionato perfettamente:
var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
Mi piacerebbe tornare indietro e controllare il codice. Tutti gli eventi in Backbone sono definiti come delegati collegati all'elemento viewInstance.el
. Per dissipare gli eventi, chiama lo viewInstance.remove()
che chiama $(viewInstance.el).remove()
sotto le coperte e pulisce tutti gli eventi delegati.
Si noti inoltre che in alcuni browser (credo di Firefox) esiste un problema noto che alcune chiavi (come i tasti freccia) non presentano bolle e non funzioneranno correttamente con gli eventi delegati keypress
. Se stai prendendo le chiavi speciali, probabilmente stai meglio usando keyup
e keydown
.
La tua galleria è vista backbone o html standalone + js? –
È una vista backbone. –
mostraci i tuoi selettori per eventi 'keydown' ... penso che li leghino a elementi errati –