javascript - 悬停弹出菜单不适用于导航子链接

标签 javascript jquery html css

我在名为“flyoutContainer”的导航中的子菜单周围引入了一个 div 包装器,如下所示:-

<li id="menu-item-206" class="has-flyout aboutUs menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children"><a href="#">main link</a><a href="#" class="flyout-toggle"><span> </span></a>
    <div class="flyoutContainer"><!-- ADDED THIS WRAPPER HERE -->
        <ul class="flyout">
            <li id="menu-item-2205" class="threeNav aboutUs itemOne menu-item menu-item-type-post_type menu-item-object-page"><a href="#">sub link 1<br><span class="spannav">desc</span></a></li>
            <li id="menu-item-242" class="threeNav aboutUs itemTwo menu-item menu-item-type-post_type menu-item-object-page"><a href="#">sub link 2<br><span class="spannav">desc</span></a></li>
            <li id="menu-item-224" class="threeNav aboutUs itemThree menu-item menu-item-type-post_type menu-item-object-page"><a href="#">sub link 3<br><span class="spannav">desc</span></a></li>
        </ul>
    </div>
</li>

jQuery 如下:-

else {
   $('.nav-bar>li.has-flyout').hover(function() {
     $(this).children('.flyout').show();
    }, function() {
     $(this).children('.flyout').hide();
   });
}

因为我已经添加了这个包装器 div,所以代码不起作用,我认为这是因为它使用 $(this).children 并且我添加的 div 包装器阻止它显示/隐藏。

所以我猜当我将鼠标悬停在主链接上时,我需要显示/隐藏包装器 div“flyoutContainer”以及“.flyout”

我该怎么做?

谢谢

最佳答案

好吧,.flyout 不再是 li.has-flyout 的子级,因为您在它们之间引入了包装...尝试:

$(this).children('.flyoutContainer').children('.flyout').show();
$(this).children('.flyoutContainer > .flyout').show();    // not recommendable
$(this).find('.flyout').show();

或者,您可以只使用 CSS...

.nav-bar > li.has-flyout:hover .flyout {
    display: block;
}

关于javascript - 悬停弹出菜单不适用于导航子链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22961787/

相关文章:

javascript - 在 jQuery 中检索 DataTable 行的单个单元格数据

javascript - setInterval 在第一次实例后停止

javascript - 如何在javascript中完全获取带有重复键的JSON

jquery - 不在 jQuery 中循环

javascript - JQuery获取输入值

Javascript 在新标签页而不是窗口中打开

javascript - 找出每个子数组中任意一个元素可以形成的最大乘积

javascript - 如何使用javascript(jquery)计算选中复选框的数量

javascript - click addEventListener 在没有被点击的情况下被调用

javascript - 如何循环遍历 DOM 中的输入范围 slider 列表并使用 Each 循环捕获值