3

我刚刚发现,在升级到 Meteor 0.5.2(从 0.5)之后,按键事件('keypress'、'keydown'、keyup')的事件处理停止了对我的工作。其他事件,如 ('click' & 'blur') 工作得很好。

即使在示例应用程序中,这样的代码也不会做任何事情:

Template.someTemplate.events = {
  'keydown' : function(e) {
      console.log(e);
  }
};

有趣的是,这段代码对于我在input type="text"textarea中输入的按键确实有效(函数触发) 。但在其他地方 - 什么也没有发生。

我正在 Ubuntu 12.10 中测试最新的 Crome。

有没有其他人遇到过这个问题?

谢谢,乔治

4

2 回答 2

9

keydown 事件适用于可编辑的 html。输入字段或 contenteditable 标签触发 keydown 事件。

但是,如果您要问如何处理 body 上的 keydown 事件,这个线程可能会有所帮助:

你可以看看这个帖子:https ://groups.google.com/forum/?fromgroups=#!topic/meteor-talk/uHy--xIGH8o 。

基本上,现在,您可以直接将事件处理程序附加到 body 元素。在上面链接的示例中,他一直等到模板渲染完毕,然后使用 jQuery 附加处理程序:

Template.myTemplate.rendered = function() { 
        // Assuming you're using jQuery 
        $('body').on('keydown',function() { 
                console.log('key pressed'); 
        }); 
} 

Meteor 团队显然将很快为附加身体级事件提供更好的支持。

于 2012-12-14T02:34:45.777 回答
0

你可以简单地封闭

$('body').on('keydown',function() { console.log('keypressed'); });

在meteor.startup函数中

于 2015-05-10T08:15:47.640 回答