Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星监听多个事件一次发射_Javascript_Jquery_Events_Meteor - Fatal编程技术网

Javascript 流星监听多个事件一次发射

Javascript 流星监听多个事件一次发射,javascript,jquery,events,meteor,Javascript,Jquery,Events,Meteor,Meteor提供为模板定义EventHandler。我有一个文本输入,用户可以键入,但也可以粘贴等 迄今为止,我使用了: Template.myTemplate.events({ 'keyup #inputfield': function() { DO SOMETHING HERE } }); 可以定义类似jquery的“on”函数吗 $('#inputfield').on('change keypress paste focus textInput inp

Meteor提供为模板定义EventHandler。我有一个文本输入,用户可以键入,但也可以粘贴等

迄今为止,我使用了:

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
  });
});

您可以使用
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
  });
});
我们应该这样做:

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


Template.myTemplate.events({
    'event event anotherEvent': handler,
});
我们应该这样做:

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


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

我希望我能绕开你的第二个建议,留在“流星”风格的世界里(只是为了保持我的代码干净)。第一个很有趣,谢谢!如果至少有帮助的话,请不要忘记标记答案或投票,谢谢!:PI希望我能绕过你的第二个建议,继续保持“流星”风格的世界(只是为了保持代码的整洁)。第一个很有趣,谢谢!如果至少有帮助的话,请不要忘记标记答案或投票,谢谢!:PInteresting,但您希望绑定上下文。很快Meteor就会知道jquery事件,但现在还没有。调试模板刷新破坏了jquery事件的内容听起来效率不高,因此这是一个更安全的解决方案,但您希望绑定上下文。Meteor很快就会知道jquery事件,但目前还没有。调试模板刷新所破坏的jquery事件听起来效率不高,因此这是一个更安全的解决方案