jquery - 导航下拉菜单 - 悬停并单击

标签 jquery html css less

我有一个导航,鼠标悬停时会出现一个子导航。

这也需要在移动设备上工作,所以我认为实现此目的的最佳方法是在单击时使用 jquery。因此,当悬停在 - 在桌面上和点击 - 在移动设备上时,它会出现。

我已经实现了这个解决方案,但问题是,当用户将鼠标悬停在导航上然后单击它时,即使悬停关闭,导航也会保持打开状态。

最好的解决方案是什么?

我正在使用 bootstrap 2。

HTML

<ul>
<li class="n1">Nav 1</li>
<li class="n2">Nav 2</li>
<li class="n3">Nav 3
    <ul class="dropdown">
        <li>DropDown 1</li>
        <li>DropDown 2</li>
        <li>DropDown 3</li>
    </ul>
</li>

ul{
    li{
        &:last-child{

                &:hover {
                    border-bottom-color: white;
                    .nav-dropdown{
                        display: block;
                    }
                }
            }
      }
 }

JS

$('.dropdown').parent().on('click', function(){
        $('dropdown').toggle();
    });

最佳答案

最好的方法是在您的页面中包含 modernizr.js 并检测是否在支持触摸的设备上查看该页面。如果是这样,您可以添加适当的 jQuery 代码。

您可以在 http://www.hongkiat.com/blog/detect-touch-device-modernizr/ 上阅读更详细的文章

关于jquery - 导航下拉菜单 - 悬停并单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23013579/

相关文章:

javascript - 带有递归 Ajax 的 Jquery Promise

javascript - 如何定位嵌套并包含在父 svg 中的 svg

html - 溢出 : scroll; CSS adding border to edge of page?

javascript - 如果单词在某类集合样式中

jquery - 使用 jQuery 的 CSS 空白平滑过渡

javascript - 如何删除 DOM 元素内的所有文本

javascript - Jquery 代码破坏页面 Javascript

javascript - 为什么我的点击事件处理程序(是 "is")正常工作?

html - 页脚在底部

CSS问题简单