jquery - 使用 jQuery for Joomla 创建子菜单

标签 jquery html css

我有一个新问题。 我想用 jquery 为我的 joomla 网站创建一个子菜单。 菜单如下所示:

<ul id="submenu">
    <li><a href="#">Link</a></li>
    <li class="parent">
        <a href="#">Submenu 1</a>
        <ul>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
        </ul>
    </li>
    <li class="parent">
        <a href="#">Submenu 2</a>
        <ul>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
        </ul>
    </li>
        <li class="parent">
        <a href="#">Submenu 3</a>
        <ul>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
        </ul>
    </li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
</ul>

所以并不是所有的元素都有子元素。 我怎样才能做到这一点? 我试过这样:

// hide all elements onload 
$("#submenu > li.parent > ul").hide();

$("#submenu li.parent").hover(function() {
    $(this).find("ul").slideDown("slow");
});

但是我不知道如果用户用鼠标离开菜单我该如何关闭子菜单。 我想在显示子菜单之前关闭其他开放式菜单。 谁能帮帮我?

谢谢

最佳答案

您可以使用mouseenter/mouseleave

$("#submenu li.parent").mouseenter(function() {
     $(this).find("ul").slideDown("slow");
}).mouseleave(function() {
     $(this).find("ul").slideUp("Slow");
});​

但我最好选择纯 CSS 解决方案。

http://jsfiddle.net/QEWvm/

CSS3 示例解决方案:http://jsfiddle.net/qzP7s/

关于jquery - 使用 jQuery for Joomla 创建子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419565/

相关文章:

php - 我在错误控制台中收到无效的正则表达式标志 w 错误

javascript - .load 获取页面,但不显示

用于插入的 php 数组内爆

javascript - 如何找到 div 中的所有链接(及其所有子元素)

CSS将菜单保留在容器中并将背景扩展到全屏

javascript - 使用ajax动态分割滚动条

javascript - 清除 setTimeout 函数 onkeypress

javascript - 如何将我的汉堡菜单转换为水平菜单?

javascript - 根据 [Slick] slider 选择加载 div

html - 不遵守输入字段的大小属性