iPhone:span点击不'我工作不好
iPhone: span click doesn't work fine
当我想触摸span"箭头"以下拉第二级菜单导航时,我遇到了问题。当我触摸箭头时,结果和我触摸页面上的一样(例如哲学)。箭头有css-->光标:指针;在桌面版本上,它运行良好。
我用iPhone 5。如果我触摸箭头并按住它1秒,那么它就可以正常工作。但如果我只碰它一次,它就会把我带到一页。
http://www.dodaj.rs/f/2n/ym/WnUC5W0/menu.jpg
//First js for adding arrow
$(".menu-item-has-children").each(function() {
$(this).prepend('<span onClick="" class="arrow"></span>');
});
$(".main-menu .menu li").first().addClass("first-page-item");
//Second js for dropwdown submenu
$('.arrow').on("click",function(e) {
if ($(this).hasClass('opened')) {
$(this).removeClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
} else {
$(this).addClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
}
e.stopPropagation();
});
<ul class="menu">
<li class="menu-item">
<span onclick="" class="arrow opened"></span>
<a href="#">Philosophie</a>
<ul class="sub-menu" style="width: 208px; display: block;">
<li class="menu-item">
<a href="#">Über uns</a>
</li>
<li class="menu-item">
<a href="#">Unser weg</a>
</li>
</ul>
</li>
<li class="menu-item"></li>
<li class="menu-item"></li>
</ul>
由于iPhone是触摸设备,因此应该使用触摸事件而不是单击事件。
所以,你应该:
- 检测设备是否为移动设备
- 根据设备类型正确行事
这是代码:
function goArrow(e) {
if ($(this).hasClass('opened')) {
$(this).removeClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
} else {
$(this).addClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
}
e.stopPropagation();
}
var TOUCH = "ontouchstart" in window;
if (TOUCH) $('.arrow').on("touchstart", goArrow);
else $('.arrow').on("click", goArrow);
相关文章:
- 使用Clipboard.js复制span文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- iPhone:span点击不'我工作不好
- 为什么单击事件不能在span上工作,而可以在a上工作?
- 使用ajax进行在线名称检查时,Span标签不工作
- 悬停功能为警报工作,但不能附加span标签
- jquery . css / .attr /.addClass不能在span标签上工作
- 替换span与新的数据,但新的jquery调用不工作