骨干窗口按键事件?

时间:2016-01-19 18:35:52

标签: javascript backbone.js

我知道我可以使用window.keypress事件

$(window).keypress(function(e) {
    alert('hello world');
});

但我想知道是否有办法使用骨干事件在窗口的任何地方捕捉按键?

我无法在视图上执行此操作,因为我的页面将包含多个视图。

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

var OverlordView = Backbone.View.extend({
    events: {
    "keypress": "alert"
  },
  alert: function() {
    alert('hello world')
  }
});

$(function() {
    new OverlordView({el: $('body')[0]})
})

演示:http://jsfiddle.net/3obw5k8j/

答案 1 :(得分:0)

Backbone的事件处理程序只能在自己的视图中工作。不会影响窗口上下文。你需要设置内部初始化我假设。

var MyView = Backbone.View.extend({
    initialize : function(){
        $(window).on("keypress", this.windowKeyPress)
    },
    windowKeyPress : function(){
        // handler.
    }
});