如何在Meteor JS中检测整个文档上的事件

How to detect events on entire document in Meteor JS?

本文关键字:文档 事件 检测 Meteor JS      更新时间:2023-09-26

就这么简单。我目前在我的模板中有事件,但它不起作用:

 'keyup': function(event) {
    event.preventDefault();
    console.log("KEYUP");
}

更新:这似乎是框架中的一个通用错误。如果有人能分享一个我可以使用的不涉及使用他人软件包的手动破解,我将不胜感激。

更新2:我已经解决了这个问题,如下所示。

不幸的是,流星(源)中有一个错误,事件不会在UI.body.template上触发。您可以使用流星体事件包来修补它,并将keyup事件附加到整个文档上。

突然间,我原来的代码工作了。也许流星的好人已经解决了这个问题,耶!

以下是0.9.3.1上适用于我的内容:

Template.template_name_here.events({
  'keyup': function(event) {
    event.preventDefault();
    console.log("KEYUP");
  }
});

Meteor甚至可以用一个像这样的处理程序来处理多个事件:

Template.template_name_here.events({
  'keyup, click': function(event) {
    event.preventDefault();
    console.log("KEYUP OR CLICK");
  }
});

太棒了!

当前Meteor正在正确处理<body>事件,除非您使用的是接管模板渲染的渲染器。例如Kadira:blaze模板,它将覆盖模板(用于FlowRouter)或Iron Router的默认Meteor渲染。

幸运的是,有一个简单的包可以恢复这个功能,称为gwendall:bodyevents。