jQuery 点击移动设备上的事件
jQuery Click Event on Mobile
我在移动设备上的JQuery点击事件时遇到问题。我已经搜索了SO的答案,并发现了关于在Safari/Chrome等移动浏览器中工作的点击事件的相互矛盾的建议。
下面是我的笔,它是一个更大项目的片段。这是我在 5 分钟内为了这篇文章的目的而拼凑的东西。
在桌面浏览器上执行 JS 并切换 CSS 类,但在移动设备上根本不执行。我错过了什么?
http://codepen.io/anon/pen/FknId
谢谢!
.HTML
<a href="#" class="btn-navbar-responsive">Menu</a>
<ul class="navbar-menu navbar-hidden">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 1</a></li>
</ul>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
.JS
$(".btn-navbar-responsive").click(function() {
$(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
.CSS
.btn-navbar-responsive {
padding: 15px 20px;
color: white;
text-decoration: none;
font-size: 16px;
font-family: "Helvetica";
background-color: #50D78B;
}
.navbar-visible {
-webkit-transition: opacity, ease-in, 350ms;
-moz-transition: opacity, ease-in, 350ms;
-ms-transition: opacity, ease-in, 350ms;
transition: opacity, ease-in, 350ms;
-webkit-transition: top, ease-in, 350ms;
-moz-transition: top, ease-in, 350ms;
ms-transition: top, ease-in, 350ms;
transition: top, ease-in, 350ms;
top: 10px;
opacity: 1;
position: relative;
z-index: 999;
}
.navbar-hidden {
-webkit-transition: opacity, ease-in, 350ms;
-moz-transition: opacity, ease-in, 350ms;
-ms-transition: opacity, ease-in, 350ms;
transition: opacity, ease-in, 350ms;
-webkit-transition: top, ease-in, 350ms;
-moz-transition: top, ease-in, 350ms;
-ms-transition: top, ease-in, 350ms;
transition: top, ease-in, 350ms;
top: 0px;
opacity: 0;
position: relative;
z-index: 999;
}
您可以尝试通过检测触摸事件来进行事件委派,如下所示检测是否支持触摸
var event= ('ontouchstart' in document.documentElement) ? "touchstart" : "click";
委托正确的事件
$(".btn-navbar-responsive").on(event, function() {
$(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
一个简单的解决方法是添加 CSS 属性:
cursor: pointer;
尝试 .on() 而不是 click() 事件。
http://api.jquery.com/on/
$(".btn-navbar-responsive").on('click', function() {
$(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
相关文章:
- 如何从画布上的某个移动事件中获取X和Y
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何使用纯javascript的移动触摸事件
- 移动触发二'单击'事件
- Video.js+移动设备上的谷歌IMA:'点击'导致错误的事件
- 移动定时触摸事件
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 使用Keydown事件移动对象
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 需要在javascript或jquery中的Android或Iphone移动设备后退按钮点击事件
- 谷歌地图点击事件移动标记
- 响应菜单问题-如何在移动环境中处理HREF和onclick事件
- 要在移动设备中绑定到的事件
- Jquery/JavaScript OnClick 事件未在移动设备上触发
- 如何跟踪页面上的所有JavaScript事件(移动浏览器)
- 如何在ExtJS窗口中触发将事件移动到某个x或y位置
- 使用回车键事件移动到下一个输入
- Javascript:防止鼠标点击事件移动光标(防止它改变选择)
- 在KineticJS中使用触摸事件移动图像
- 如何使用jquery /javascript防止touchmove事件移动背景