Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何防止响应导航上的悬停触发_Jquery_Navigation - Fatal编程技术网

Jquery 如何防止响应导航上的悬停触发

Jquery 如何防止响应导航上的悬停触发,jquery,navigation,Jquery,Navigation,我正在建立一个快速响应的导航系统,刚刚遇到了一个问题。导航的本质是它的响应性,所以你点击一个“三行”按钮,菜单就会在页面中弹出。菜单支持嵌套的,因此在菜单内,您可以单击一个框(右侧)打开嵌套菜单。现在,我的问题是,我只想打开导航onclick,而不是hover 实质上: 主导航(桌面):将鼠标悬停在上可打开子导航 当在某个宽度(媒体查询)下时,将其隐藏以显示要单击的黑框,您可以单击下一个框以打开 一切正常,但打开桌面导航的悬停事件显然会触发导航在响应视图中打开。我怎样才能防止这种情况 这是导

我正在建立一个快速响应的导航系统,刚刚遇到了一个问题。导航的本质是它的响应性,所以你点击一个“三行”按钮,菜单就会在页面中弹出。菜单支持嵌套的
    ,因此在菜单内,您可以单击一个框(右侧)打开嵌套菜单。现在,我的问题是,我只想打开导航onclick,而不是hover

    实质上:

    • 主导航(桌面):将鼠标悬停在
    • 上可打开子导航
      • 当在某个宽度(媒体查询)下时,将其隐藏以显示要单击的黑框,您可以单击下一个框以打开
        一切正常,但打开桌面导航的悬停事件显然会触发导航在响应视图中打开。我怎样才能防止这种情况


        这是导航的JSFIDLE,请单击黑框:

        我推荐的一种方法是使用:

        在开发响应性网站/应用程序时,它将在许多其他方面帮助您

        通过包含它,您将获得(除其他外)HTML节点的类

        如果用户在触摸设备上,则为.touch类,否则为.no touch类

        要利用此功能,请对代码执行以下操作:

        $('.no-touch .nav').on({
                mouseenter: function () {
                    $(this).children('.nav-submenu').toggle();
                },
                mouseleave: function () {
                    $(this).children('.nav-submenu').toggle();
                }
            }, '.nav-item');
        

        $('.no touch.nav')
        将确保此代码仅在非触摸设备(如桌面)上执行。还有其他解决方案,但从长远来看,我强烈推荐使用Modernizer。

        我已经成功做到了这一点!我加了一个!重要信息:显示无,仅在媒体查询中显示,并使用此jQuery!-我不认为这是一个太黑的方法吗?嘿,如果它能工作的话,它能工作:)但是,有很多更干净的方法只通过CSS来完成这一切(除了点击部分切换类)。但是,如果你不是为了完美的第三方可读性,这很好。我已经设法做到了维斯特!这是如此明显,并依赖于没有黑客。在媒体查询中,我对hover事件所做的只是告诉导航不要打开,使用.parent:hover.child{display:none}——子对象是
          。分类!