jquery下拉简单问题?

发布于 2024-09-07 21:35:56 字数 765 浏览 1 评论 0原文

我快到了,但我无法解决最后一个问题。 我正在尝试在 Indexhibit 页面上使用 jquery 创建一个简单的下拉菜单。

    $('#menu ul li.section-title').hover(
  function () {  
    $(this).parent().children().show('fast');
  },
  function () {
    $(this).parent().children().not(this).hide('fast');
  }
);

菜单的结构如下所示:

<ul>
<li class="section-title">HEADER which triggers dropdown</li>
<li>element one</li>
<li>element two</li>
<li>element three</li>
</ul>

我希望部分标题触发悬停事件,并且它应该显示所有 li-children。到目前为止效果很好。然而,导航不太工作,因为我无法选择 li-child。每次将鼠标悬停在章节标题上时,整个 ul 结构都会再次崩溃。如果我将鼠标悬停在菜单的每个子项上,我需要做什么才能不触发悬停?

我希望我没有写得令人困惑。 问候马特

i'm almost there but I'm not able to solve the last problem.
I'm trying to create a simple dropdown menu with jquery on a Indexhibit page.

    $('#menu ul li.section-title').hover(
  function () {  
    $(this).parent().children().show('fast');
  },
  function () {
    $(this).parent().children().not(this).hide('fast');
  }
);

the structure of the menu looks like this:

<ul>
<li class="section-title">HEADER which triggers dropdown</li>
<li>element one</li>
<li>element two</li>
<li>element three</li>
</ul>

i want the section-title to trigger the hover event and it should display all li-children. That's working fine so far. However the navigation isn't quite working because I can't select a li-child. Everytime a hover-out the section-title the whole ul structure collapses again. What do I have to do to NOT trigger a hover-out if I'm hovering over each child of the menu?

I hope I'm not writing to confusing.
regards matt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叫嚣ゝ 2024-09-14 21:35:56

捕获 UL 的 Hover 事件,然后确保将 Overflow:hidden 样式应用于外部 UL。或者

<ul><h2>section-title<h2>
    <li>element one</li>
    <li>element two</li>
    <li>element three</li>
</ul>

#menu ul li { display:none }

#menu ul { 
    overflow:hidden
    position:absolute or float:left  <-- Might need this
}

$('#menu ul').hover(
  function () {  
    $(this).children("li").show('fast');
  },
  function () {
    $(this).children("li").hide('fast');
  }
);

Capture the Hover event of the UL and then make sure your applying the Overflow:hidden style to the outer UL. Or

<ul><h2>section-title<h2>
    <li>element one</li>
    <li>element two</li>
    <li>element three</li>
</ul>

#menu ul li { display:none }

#menu ul { 
    overflow:hidden
    position:absolute or float:left  <-- Might need this
}

$('#menu ul').hover(
  function () {  
    $(this).children("li").show('fast');
  },
  function () {
    $(this).children("li").hide('fast');
  }
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文