键盘事件不在表单内部

时间:2015-04-11 14:15:31

标签: meteor

我正在尝试做一些简单的事情:使用键在Meteor上移动屏幕上的角色

我使用Collection来存储角色的位置,但是keyup事件只在表单/输入中工作

我想在任何地方捕获客户端按键。

Template.main.events({
  'keyup': function(evt, tmpl){
    evt.preventDefault();

    // Move up
    if(evt.keyCode === 38){
      console.log('Moving up');
    }
);

此代码仅在关注输入时起作用:/

1 个答案:

答案 0 :(得分:0)

将事件添加到Template.body reference

Template.body.events({
  'keyup': function(evt, tmpl){
  evt.preventDefault();

  // Move up
  if(evt.keyCode === 38){
    console.log('Moving up');
  }
);

$(window)

var keyupFunc = function(evt){
  if(evt.keyCode === 38){
    console.log('Moving up');
  }
}

Template.main.created = function(){
  $(window).on("keyup", keyupFunc);
}

Template.main.destroyed = function(){
  $(window).off("keyup", keyupFunc);
}