我刚刚发现升级到Meteor 0.5.2(从0.5开始)后,关键事件('keypress','keydown',keyup')的事件处理停止了我的工作。其他事件(例如“点击”和“模糊”)工作得很好。
即使在示例应用中,这样的代码也没有做任何事情:
Template.someTemplate.events = {
'keydown' : function(e) {
console.log(e);
}
};
有趣的是,我在输入类型=“文本”或中输入内容时,此代码 工作(函数触发)for keypresses textarea的。 但在其他地方 - 没有任何反应。
我正在测试Ubuntu 12.10中最新的Crome。
还有其他人遇到过这个问题吗?
谢谢, 乔治
答案 0 :(得分:9)
keydown事件对我来说适用于可编辑的html。输入字段或contenteditable标签触发keydown事件。
但如果你问如何处理正文上的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团队显然将很快支持更好地支持身体水平事件。
答案 1 :(得分:0)
你可以简单地附上
meteor.startup函数中的$('body')。on('keydown',function(){ console.log('按下'键); });