【发布时间】:2014-03-14 00:46:12
【问题描述】:
我有一个非常标准的 CSS 下拉菜单,使用 :hover 来显示子元素,并使用 Doubletap 插件来捕获和清除触摸事件以允许子菜单元素在触摸设备上显示。
现在,我希望能够在用户点击十字时“关闭”打开的菜单项。到目前为止,我所拥有的是:
- 默认情况下隐藏交叉。
- 当父 li 悬停时,Cross 变得可见
但我还需要的是:
- 点击交叉时,父级:悬停状态被清除(将菜单返回到初始状态)。
Here's my JSFiddle 这是我的标记:
<ul id="main-menu">
<li class="parent" aria-haspopup="true"><a href="#">Item One</a>
<span class="tapclose">X</span>
<!-- sub-menu -->
</li>
<li class="parent" aria-haspopup="true"><a href="#">Item Two</a>
<span class="tapclose">X</span>
<!-- sub-menu -->
</li>
</ul>
最好的方法是什么?菜单需要在基于触摸和鼠标的界面上工作。我对 JQuery、CSS 和标记解决方案持开放态度。
【问题讨论】:
-
我无法真正回答,但我们使用
:hover、:focus和:active,因此您可以使用鼠标、键盘选项卡和触摸我们的菜单。 -
这个问题之前有人问过:stackoverflow.com/questions/14068773/…