阅读此帖后: 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”?
答案 0 :(得分:12)
你的问题的答案是肯定的,它仍然可以这样做。您仍然可以通过onCreated
或onRendered
方法添加事件侦听器来为单个模板制作关键事件侦听器:
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) {...});
}