我有一个名为 gallery 的选项 View 。我想在画廊呈现时(直到它关闭)收听按键事件并采取行动。
如何在主干事件中执行此操作?我已经尝试了 '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
元素的委托(delegate)。要取消绑定(bind)事件,请调用 viewInstance.remove()
,它会在幕后调用 $(viewInstance.el).remove()
并清除所有委托(delegate)的事件。
另请注意,在某些浏览器(我相信是 Firefox)中存在一个已知问题,即某些键(如箭头键)不会冒泡并且无法与委托(delegate)的 keypress
事件一起正常工作。如果您正在捕捉特殊键,您可能最好使用 keyup
和 keydown
。
关于javascript - Backbone.js - 在 View 处于事件状态时添加按键事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105393/