【问题标题】:How to listen to variable event in Meteor Template event?如何在 Meteor Template 事件中监听变量事件?
【发布时间】:2018-03-31 13:18:54
【问题描述】:

问题基本上是如何转换:

var evt = 'click' || 'touchstart'; // Based on some logic
$('.selector').on(evt, function(){});

进入 Meteor 事件处理程序

Template.MyTemp.events({
    ....??? : function(e, t){}
});

更新

根据下面的 cmets,似乎 chrome 是问题所在,因为它设置了触摸事件 passive = true

所以新的问题是:

如何在 Blaze 模板中设置事件监听器的被动属性 活动?

【问题讨论】:

    标签: events meteor meteor-blaze


    【解决方案1】:

    您可以使用/ 作为事件类型之间的分隔符,在单个处理程序中指定多个事件。 docs

    Template.MyTemp.events({
      'click/touchstart .selector'(e,t){
        e.preventDefault(); // prevents default click after touchstart
        // your handler
      }
    });
    

    英文:

    为模板MyTemp处理点击或触摸启动事件 selector 班级。

    这也是有用的阅读:touch and mouse

    【讨论】:

    • 不会复制触摸设备上的事件处理程序吗?
    • 不确定,我没有在手机上试过。我不知道它是要发送两个事件还是一个。
    • 就像我想的那样,它会触发两次。无论如何,这个问题背后的想法是在移动设备上收听 touchstart,并在桌面上收听点击。原因是有时点击在移动设备上没有按预期响应。
    • 如果停止传播怎么办?
    • 仍然触发两次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2017-10-28
    • 2012-09-02
    相关资源
    最近更新 更多