2

Meteor 提供为模板定义事件处理程序。我有一个用户可以输入的文本输入,但也可以粘贴等。

到目前为止,我使用过:

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

是否可以定义类似于 jquery 的“on”功能的东西?

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

无论有多少事件同时发生,这只会触发一次。

4

2 回答 2

3

您可以使用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
  });
});
于 2013-09-20T16:44:38.147 回答
1

_.throttle应该做的伎俩:

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


Template.myTemplate.events({
    'event event anotherEvent': handler,
});
于 2013-09-20T17:36:34.550 回答