首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式列表项上的jQuery悬停菜单

嵌入式列表项上的jQuery悬停菜单
EN

Stack Overflow用户
提问于 2012-11-13 17:30:20
回答 4查看 805关注 0票数 2

很难理解这一点。为愚蠢道歉。

我有一个看起来像这样的菜单--不是我选择的格式,它是从WordPress自动生成的:

CSS

代码语言:javascript
复制
​.menu_body {
    display: none;   
}​

代码语言:javascript
复制
<ul id="menu-list">
    <li class="menu_head"><a href="#">Header-1</a></li>
    <li class="menu_head"><a href="#">Header-2</a>
    <ul class="menu_body">
        <li><a href="#">Link-1</a></li>
        <li><a href="#">Link-2</a></li>
    </ul>
    </li>
    <li class="menu_head"><a href="#">Header-3</a>
    <ul class="menu_body">
        <li><a href="#">Link-3</a></li>
        <li><a href="#">Link-4</a></li>
    </ul>
    </li>
    <li class="menu_head"><a href="#">Header-4</a></li>
</ul>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

我想要做的是编写一个基于jQuery悬停的函数,该函数悬停在带有类menu_head的项上,显示类"menu_body“中的项。

我从其他地方学到了这样的想法:使用一个函数来打开一个菜单,然后关闭所有其他的菜单,这样做是很整洁的。看起来会是这样的:

代码语言:javascript
复制
$("#menu-list li.menu_head").mouseover(function()
{
 $(this).children('.menu_body').slideDown(500).siblings(".menu_body").slideUp("slow");

});​

这不起作用,但你可以看到我在做什么-得到第一个相关的'menu_body‘项目,并滑下来,然后得到所有其他'menu_body’项目,并滑动他们。

您可以在这里看到一个DIVs的例子(这就是我从这里偷来的):

示例链接

但要想让它与嵌套的div一起工作,还需要付出巨大的努力。

有人能建议我该做什么,并解释一下,这样我才能理解我做错了什么?

干杯,

哑光

EN

回答 4

Stack Overflow用户

发布于 2012-11-13 17:34:14

像这样试试- 演示

代码语言:javascript
复制
$("#menu-list li.menu_head").mouseover(function() {
    $(".menu_body").stop().slideUp("slow");
    $(this).children('.menu_body').delay(600).stop().slideDown(500);
});

您的.menu_body项不是彼此的兄弟姐妹。

票数 1
EN

Stack Overflow用户

发布于 2012-11-13 17:42:01

我建议使用mouseOver和mouseLeave。

代码语言:javascript
复制
$("#menu-list li.menu_head").mouseOver(function() {
    $(this).children('.menu_body').slideDown(500);
});
$("#menu-list li.menu_head").mouseLeave(function() {
    $(this).children('.menu_body').stop().slideUp(500);
});

否则,如果您不滚动到另一个菜单元素,让我们对下面的内容说,您的幻灯片向上可能无法正确调用。

示例

票数 1
EN

Stack Overflow用户

发布于 2012-11-13 17:36:12

在动画之间添加延迟,如下所示:

代码语言:javascript
复制
$(this).children('.menu_body').slideDown(500).delay(500).siblings(".menu_body").slideUp("slow");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13365671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档