【发布时间】:2015-10-21 21:31:15
【问题描述】:
我正在尝试创建一个菜单按钮,当它悬停时,会在桌面上显示一组下拉链接。但是,显然用户无法将鼠标悬停在手机等设备上,因此一直在尝试研究如何让按钮在点击时也显示菜单。
到目前为止,我已经设法使用 jquery 在鼠标进入和离开时添加和删除 .show-nav 类。我尝试添加以下代码块,但它显然也会影响桌面,如果有人单击按钮,这会使菜单有点混乱(因为该类应用于悬停,然后使用单击永久添加和删除)。
感谢 cesare,除了 iOS 上的 Chrome 之外,一切都正常运行。 djtwigg 的解决方案适用于 Chrome,但不适用于 safari。是否可以将两种解决方案合并在一起?
<nav>
<ul>
<li id="nav-button">
<a id="nav-click" href="#">Menu <i class="fa fa-bars"></i></a>
<ul class="sub-nav">
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li><a href="#">Link3</a></li>
<li><a href="#">Link4</a></li>
</ul>
</li>
</ul>
</nav>
var flag = false;
container.bind('touchstart', function(){
if (!flag) {
flag = true;
setTimeout(function(){ flag = false; }, 260);
list.toggleClass('show-nav');
}
return false
});
container.hover(function(){
list.addClass('show-nav');
}, function(){
list.removeClass('show-nav');
});
});
【问题讨论】:
-
请附上代码。
-
我附上了一个我想要实现的基本版本的小提琴。不过,我会在我的问题中添加更多代码。
标签: javascript jquery mobile menu hover