Javascript 为什么按键事件不起作用?

Javascript 为什么按键事件不起作用?,javascript,backbone.js,Javascript,Backbone.js,请帮忙解决这个问题。我制作模板,查看并运行它们 html: 初始化: 按下控制台显示“222”中的任意键后需要。但什么也没发生 i、 e.按键处理器未工作。为什么 按键和向下键在元素未聚焦时不起作用 它在输入中有意义,或者您可以尝试在文档元素上设置它: $(document).on('keypress', function(e){ var code = e.keyCode || e.which; console.log(e, code); }); 主干输入示例: var输入

请帮忙解决这个问题。我制作模板,查看并运行它们

html:

初始化:

按下控制台显示“222”中的任意键后需要。但什么也没发生

i、 e.按键处理器未工作。为什么


按键
向下键
在元素未聚焦时不起作用

它在输入中有意义,或者您可以尝试在文档元素上设置它:

$(document).on('keypress', function(e){
    var code = e.keyCode || e.which;
    console.log(e, code); 
});
主干
输入
示例:

var输入=Backbone.View.extend({
标记名:“输入”,
活动:{
‘按键’:‘按键’
},
按:功能(e){
var代码=e.keyCode | | e.which;
控制台日志(代码);
}
});
(新输入()).$el.appendTo(document.body)

keypress
keydown
如果元素未聚焦,则将不起作用

它在输入中有意义,或者您可以尝试在文档元素上设置它:

$(document).on('keypress', function(e){
    var code = e.keyCode || e.which;
    console.log(e, code); 
});
主干
输入
示例:

var输入=Backbone.View.extend({
标记名:“输入”,
活动:{
‘按键’:‘按键’
},
按:功能(e){
var代码=e.keyCode | | e.which;
控制台日志(代码);
}
});
(新输入()).$el.appendTo(document.body)

在模板集中
tabindex=“1”


在模板集中
tabindex=“1”


如果您将其设置为在聚焦元素上使用,则它会起作用。如果您不想集中精力,可以在
主体
元素或
文档
上使用它


演示:

如果您将其设置为在聚焦元素上使用,它将起作用。如果您不想集中精力,可以在
主体
元素或
文档
上使用它


演示:

我建议设置
tabIndex=“-1”
以避免用户意外地进入该元素。我建议设置
tabIndex=“-1”
以避免用户意外地进入该元素。
window.APP = window.APP || {};
APP.SpaceView = Backbone.View.extend({  

  initialize: function() {   
    this.render();
  },    

  template: _.template($('#spaceTpl').html()),

  render: function() {    
    this.$el.html(this.template());  
    return this;
  }, 

  events: {
    'click': 'move',
    'keypress': 'move',
    'keydown': 'move'
  }, 

  move: function(e) {  console.log(222)
    var code = e.keyCode || e.which;

    if (code === 13) {
      console.log('sdsd');
    }
  }     

});
var app = new APP.SpaceView({el: '#space'}); 
$(document).on('keypress', function(e){
    var code = e.keyCode || e.which;
    console.log(e, code); 
});