【发布时间】:2014-01-07 09:40:25
【问题描述】:
我有一个经典的 css 下拉菜单,其中 css 悬停选择器切换到“display:block;”
为了使用触控设备,我添加了这个脚本:
$(document).ready(function () {
$("div.menuHead").click(function () {
//Toggle the menu but don't include it in the hide selector using .not()
$(this).siblings("div.menu").toggle();
$("div.menuHead").not($(this)).siblings("div.menu").hide();
});
});
悬停下拉菜单继续在桌面上工作,而菜单可以在触摸设备上单击。 但是,如果桌面用户碰巧用鼠标单击,它可以工作,但会完全禁用悬停在所有菜单上。然后只有点击有效。
知道为什么吗?我已经尝试完全禁用 css 悬停属性,并使用 mouseover 和 mouseout 事件处理 jQuery 中的所有内容,但是当单击 iOs 时触发 mouseover 然后立即单击事件,这会非常快速地打开关闭菜单,因此它不起作用。
HTML结构:
<div class="vectorMenu">
<div class="menuHead">Menu Title</div>
<div class="menu">
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
</ul>
</div>
</div>
我在 CSS 中设置的其他内容:
div.vectorMenu div.menu {
display: none;
}
div.vectorMenu:hover div.menu {
display: block;
}
谢谢,
艾蒂安
【问题讨论】:
-
我根据我在这里看到的内容给出了一个答案,但是带有完整代码的 JSfiddle 会更有用地帮助您
标签: javascript jquery html css