Acabo de probar lo siguiente y funcionó a la perfección:
var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
Me gustaría volver y comprobar su código. Todos los eventos en Backbone se definen como delegados adjuntos al elemento viewInstance.el
. Para desvincular los eventos, llame al viewInstance.remove()
que llama al $(viewInstance.el).remove()
debajo de las cubiertas y limpia todos los eventos delegados.
También tenga en cuenta que en algunos navegadores (creo que Firefox) hay un problema conocido de que algunas teclas (como las teclas de flecha) no burbujean y no funcionan correctamente con los eventos delegados keypress
. Si está capturando claves especiales, probablemente sea mejor que use keyup
y keydown
.
¿Su galería es la vista principal o la independiente html + js? –
Es una vista de red troncal. –
muéstrenos sus selectores para eventos 'keydown' ... creo que los vincula a elementos incorrectos –