Javascript Meteor js 1.7点击事件未在手机上注册
我已经建立了一个简单的主页,在那里,导航栏在小型设备上变成了一个汉堡包。在web(和浏览器中的移动视图)上,这很好。导航栏向下滑动,按钮工作等 在实际移动设备上进行测试时,当页面加载时,移动导航默认打开,汉堡不会对点击/触摸做出响应。我还没有弄清楚它为什么会默认打开,但我现在更关心的是触摸事件的触发 我在3年多以前读过类似的文章,最近没有发现任何东西 导航栏模板:Javascript Meteor js 1.7点击事件未在手机上注册,javascript,meteor,Javascript,Meteor,我已经建立了一个简单的主页,在那里,导航栏在小型设备上变成了一个汉堡包。在web(和浏览器中的移动视图)上,这很好。导航栏向下滑动,按钮工作等 在实际移动设备上进行测试时,当页面加载时,移动导航默认打开,汉堡不会对点击/触摸做出响应。我还没有弄清楚它为什么会默认打开,但我现在更关心的是触摸事件的触发 我在3年多以前读过类似的文章,最近没有发现任何东西 导航栏模板: <template name="navbar"> <header> <div class="c
<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()代码>在事件处理程序中,而不是将模板
作为参数传递。你能用一些调试语句来验证这个动作是否被触发吗?我认为当点击一个项目时没有任何事件被触发。我尝试在单击时发出警报并记录,但什么也没有发生。当我将jqueryson('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(' ');
}
},
});