输入外的流星keydown/keyup事件

Mco*_*ope 4 meteor

阅读此主题 后:更新到0.5.2后,Keypress事件在Meteor中的"input"元素之外停止工作

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

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

Nat*_*ate 12

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

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

您不必Meteor.startup按照当前接受的答案的建议进行操作.

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

Template.myTemplate.onDestroyed(() => {
    $(document).off('keyup');
});
Run Code Online (Sandbox Code Playgroud)