javascript - Backbone.js - 在 View 处于事件状态时添加按键事件?

标签 javascript view backbone.js javascriptmvc

我有一个名为 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 事件一起正常工作。如果您正在捕捉特殊键,您可能最好使用 keyupkeydown

关于javascript - Backbone.js - 在 View 处于事件状态时添加按键事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105393/

相关文章:

javascript - jQuery 中的 Backbone.js 事件

javascript - Underscore.js 模板渲染

android - onDraw() 方法未绘制所有位图

asp.net-mvc - 如何停止 ValidationMessageFor 在加载时显示错误消息?

javascript - 如何在没有 .get 的情况下获取主干模型属性

javascript - 如果单击按钮,如何强制光标进入输入字段?

php - 如何禁止用户在特定时间段之前查看页面?

javascript - 在我的应用程序中嵌入 Javascript

php - 如果操作 == 某事,则提交表单

javascript - 如何使用 javascript 在我的 View 中重复特定的 C# 代码块,甚至应该这样做吗?