【问题标题】:Reset Active Subnav using Bootstrap Data-Hover State使用引导数据悬停状态重置活动子导航
【发布时间】:2016-04-28 03:48:08
【问题描述】:

我正在使用下面链接的 Bootstrap 数据悬停插件。

当您将鼠标悬停在导航中的每个项目上时,我有两个级别的导航,子导航应该出现。那工作正常。

我遇到的问题是,如果没有其他子导航显示,我希望活动部分的子导航重新出现。

我在下面添加了 JS,它使活动项目之后的每个项目都能正常工作,但活动项目之前的每个项目以及活动项目都不能正常工作。

当我尝试从主导航项转到它自己的子导航时,活动项之前的项目正在重置为活动子导航

当我将鼠标移出主导航项时,它不会向其中添加开放类,从而导致子导航消失。

HTML

<ul class="main-section-nav nav navbar-nav">
 <li class="dropdown">
  <a>item</a>    
  <ul>
    <li> item </li>
    <li> item </li>
    <li> item </li>
  </ul>
 </li>
 <li class="dropdown active open">
  <a>item</a>    
  <ul>
    <li> item </li>
    <li> item </li>
    <li> item </li>
  </ul>
 </li> 
 <li class="dropdown">
  <a>item</a>    
  <ul>
    <li> item </li>
    <li> item </li>
    <li> item </li>
  </ul>
 </li>  
 <li class="dropdown">
  <a>item</a>    
  <ul>
    <li> item </li>
    <li> item </li>
    <li> item </li>
  </ul>
 </li>
</ul>

JS

   $(document).ready(function() {
    $('.main-section-nav > li').mouseout(function(){
      $('.active').addClass('open');
    });
   });

https://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/

【问题讨论】:

  • 您是说如果用户正在查看的导航没有子导航菜单,您是否希望显示活动菜单的子导航?
  • 如果用户没有查看任何导航项,则应该显示活动菜单的子导航。每个导航项都有子导航。

标签: jquery html css twitter-bootstrap


【解决方案1】:

只需改用.mouseleave

$('.main-section-nav > li').mouseleave(function(){
  $('.active').addClass('open');
});

jsFiddle: https://jsfiddle.net/CSS_Apprentice/xadrbp7m/2/

根据w3schools

当鼠标指针离开任何子节点时触发 mouseout 事件 元素以及选定的元素。

mouseleave 事件仅在鼠标指针离开时触发 被选中的元素。

【讨论】:

  • 这修复了活动之前的项目问题,但不幸的是没有修复当前的导航问题。我认为我的 mouseleave 是在 data-hover 之前触发的,它在删除之前添加了“open”。
  • 我们可以做一个 if else 。如果某些东西已经有Class 'open' = 什么也不做。 else = addClass 'open' 激活
  • 我现在必须离开办公室。我回家后试试看。
【解决方案2】:

错误的 HTML 问题

这个:

<ul class="class="main-section-nav nav navbar-nav>

应该是这样的:

<ul class="main-section-nav nav navbar-nav">

【讨论】:

  • 这只是我提问中的一个错字。感谢您指出这一点。
  • 那里还有更多糟糕的 HTML 也没有关闭,而 li 双关闭。确定不是拼写错误吗?
  • 我输入了所有试图复制我的代码的内容。这绝对是一个逻辑问题。
猜你喜欢
  • 2016-08-04
  • 2023-03-03
  • 2015-11-17
  • 2013-01-08
  • 2014-08-22
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 2014-05-31
相关资源
最近更新 更多