输入外的流星keydown / keyup事件

时间:2015-01-15 20:58:49

标签: meteor

阅读此帖后: Keypress events stopped working outside of "input" elements in Meteor after update to 0.5.2

我知道keydown / keyup事件是不可能的,除非你把它添加到$(document).on('keyup').....里面的Rendered回调。

但那个帖子已经超过2年了。这仍然是这样吗?是否仍然没有在输入/ contenteditable之外添加keyup / keydown事件的“Meteor Way”?

2 个答案:

答案 0 :(得分:12)

你的问题的答案是肯定的,它仍然可以这样做。您仍然可以通过onCreatedonRendered方法添加事件侦听器来为单个模板制作关键事件侦听器:

Template.myTemplate.onCreated(() => {
    $(document).on('keyup', (e) => {
        console.log('A key has come up.');
    });
});

您不必按照当前接受的答案的建议在Meteor.startup中执行此操作。

要销毁该事件,以便在此模板中不再存在该事件时

Template.myTemplate.onDestroyed(() => {
    $(document).off('keyup');
});

答案 1 :(得分:0)

如果你想在页面加载时为整个页面添加一个keyup事件,那么" meteor way"是使用Meteor.startup

Meteor.startup(function () {
  $(document).on('keyup', function (e) {...});
}