繁体   English   中英

流星听多个事件只发射一次

[英]meteor listen for multiple events fire just once

流星提供了为模板定义eventHandlers的功能。 我有一个文本输入,用户可以输入,也可以粘贴等。

我使用过的Sofar:

Template.myTemplate.events({
    'keyup #inputfield': function() {
         DO SOMETHING HERE
     }
});

是否可以定义类似于jquery的“ on”函数的内容?

$('#inputfield').on('change keypress paste focus textInput input', function () 
{ 
    DO SOMETHING HERE
});

无论同时发生多少事件,此操作仅触发一次。

您可以使用stopImmediatePropagation停止其他处理程序:

Template.myTemplate.events({
    'keyup #inputfield': function(event) {
         event.stopImmediatePropagation();
     }
});

或者您可以使用jQuery加上rendered命令来实现相同的目的:

Template.myTemplate.rendered(function() {
  $(this.find('#inputField')).on('change keypress paste focus textInput input', function () 
  { 
      DO SOMETHING HERE
  });
});

_.throttle应该可以解决问题:

var handler = _.throttle(function(event) {
    ...
}, 1, {leading: false});


Template.myTemplate.events({
    'event event anotherEvent': handler,
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM