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}——子对象是- 。分类!