Javascript Meteor js 1.7点击事件未在手机上注册

Javascript Meteor js 1.7点击事件未在手机上注册,javascript,meteor,Javascript,Meteor,我已经建立了一个简单的主页,在那里,导航栏在小型设备上变成了一个汉堡包。在web(和浏览器中的移动视图)上,这很好。导航栏向下滑动,按钮工作等 在实际移动设备上进行测试时,当页面加载时,移动导航默认打开,汉堡不会对点击/触摸做出响应。我还没有弄清楚它为什么会默认打开,但我现在更关心的是触摸事件的触发 我在3年多以前读过类似的文章,最近没有发现任何东西 导航栏模板: <template name="navbar"> <header> <div class="c

我已经建立了一个简单的主页,在那里,导航栏在小型设备上变成了一个汉堡包。在web(和浏览器中的移动视图)上,这很好。导航栏向下滑动,按钮工作等

在实际移动设备上进行测试时,当页面加载时,移动导航默认打开,汉堡不会对点击/触摸做出响应。我还没有弄清楚它为什么会默认打开,但我现在更关心的是触摸事件的触发

我在3年多以前读过类似的文章,最近没有发现任何东西

导航栏模板:

<template name="navbar">
<header>
    <div class="container">
        <img id="logo" src="/img/logo.png" alt="Logo.png">
        <nav class="site-nav {{menuStatus}}">
            <ul>
                <li><a href="/" id="home"><i class="fa fa-home site-nav--icon"></i>Home</a></li>
                <li><a href="/about" id="about"><i class="fa fa-info site-nav--icon"></i>About</a></li>
                <li><a href="/services" id="services"><i class="fa fa-pencil site-nav--icon"></i>Services</a></li>
                <li><a href="/careers" id="careers"><i class="fa fa-usd site-nav--icon"></i>Careers</a></li>
                <li><a href="/contact" id="contact"><i class="fa fa-envelope site-nav--icon"></i>Contact</a></li>
                <button class="login" >Login</button>
            </ul>
        </nav>
        <div class="menu-toggle">
            <a href="#" class="hamburger"></a>
        </div>
    </div>
</header>

我曾尝试使用jquery实现同样的目标,但没有成功。如果有人知道发生这种情况的原因,或者有更好的实践指导,我将非常感谢您的意见。

我不确定这是否能解决您的问题(因此我将留下评论):您应该使用
const template=template.instance()在事件处理程序中,而不是将
模板
作为参数传递。你能用一些调试语句来验证这个动作是否被触发吗?我认为当点击一个项目时没有任何事件被触发。我尝试在单击时发出警报并记录,但什么也没有发生。当我将jquerys
on('tap')
绑定到时,这也适用于它。菜单切换。我上面的评论并不完全正确。事件会触发,但不会执行代码来切换类。例如,如果我为touchstart添加了一个事件,它将提示该消息。它只是不会切换类<代码>'touchstart.menu toggle':()=>{alert('menu-toggle clicked');})template.menuStatus.get()后,什么是
menuStatus
?看起来您定义了一个方法
单击。菜单切换
,但您从未调用过它。
import './navbar.html';
import './navbar.css';
import { ReactiveVar } from 'meteor/reactive-var'

Template.navbar.onCreated(function OnCreated() {
    this.menuStatus = new ReactiveVar(' ');
});

Template.navbar.helpers({
  menuStatus: function(){
      return Template.instance().menuStatus.get()
  }
});

Template.navbar.events({
    'click .menu-toggle': (e, template) => {
        let menuStatus = template.menuStatus.get();
        if (menuStatus == ' ') {
            template.menuStatus.set('site-nav--open');
        } else {
            template.menuStatus.set(' ');
        }
    },
});