我有一个名为画廊的视图选项。我想在呈现画廊时收听并处理 keydown 事件(直到它关闭)。
我如何在骨干事件中做到这一点?我已经尝试了 'keydown X':function 的所有变体,但都没有奏效。
我有一个名为画廊的视图选项。我想在呈现画廊时收听并处理 keydown 事件(直到它关闭)。
我如何在骨干事件中做到这一点?我已经尝试了 'keydown X':function 的所有变体,但都没有奏效。
我刚刚测试了以下内容,它完美无缺:
var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
我会回去检查你的代码。Backbone 中的所有事件都定义为附加到viewInstance.el
元素的委托。要取消绑定事件,请调用viewInstance.remove()
which$(viewInstance.el).remove()
在幕后调用并清理所有委托事件。
另请注意,在某些浏览器(我相信是 Firefox)中存在一个已知问题,即某些键(如箭头键)不会冒泡,并且无法与委派keypress
事件一起正常工作。如果您要捕获特殊键,则最好使用keyup
and keydown
。