Właśnie przetestowane następujące i to działało bez zarzutu:
var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
Chciałbym wrócić i sprawdzić kod. Wszystkie zdarzenia w kręgosku są zdefiniowane jako delegaty dołączone do elementu viewInstance.el
. Aby odłączyć zdarzenia, zadzwoń pod numer viewInstance.remove()
, który wywołuje pod pokrywami $(viewInstance.el).remove()
i czyści wszystkie delegowane zdarzenia.
Należy również zauważyć, że w niektórych przeglądarkach (jak sądzę Firefox) istnieje znany problem polegający na tym, że niektóre klawisze (takie jak klawisze strzałek) nie pęcznieją i nie będą działać poprawnie z delegowanymi zdarzeniami keypress
. Jeśli łapiesz specjalne klucze, prawdopodobnie lepiej jest używać keyup
i keydown
.
Twoja galeria jest widokiem szkieletu lub samodzielnego html + js? –
To jest widok szkieletowy. –
pokaż nam swoje selektory zdarzeń 'keydown' ... myślę, że wiążesz je z niewłaściwymi elementami –