jquery - 如何将子菜单添加到下拉菜单

标签 jquery html css

fiddle :http://jsfiddle.net/yjp2sner/

HTML:

<div class="dropdown">
  <a href="javascript:void(0);" class="userLink"><span id="CPHB_lblUser">ADMIN</span></a>
  <div class="dvHolder">
    <ul id="ulDrop">
      <li><a class="ondrop reloadLink" href="Default.aspx" target="_self" title="Reload Page">Reload Page</a></li>
      <li id="liLogout" onclick="logout();">
        <span class="ondrop logoutLink">Logout</span>
      </li>
      <li><a class="ondrop viewfolderLink" href="javascript:void(0);" title="Reports">Reports</a>
      </li>
    </ul>
  </div>
</div>

我想要做的是为 li 添加一个具有相同样式的子菜单。因此,例如对于 Report 列表项,我想要一个向左滑出的子菜单,如下所示:

enter image description here

我如何修改我的 HTML/CSS 以允许这种情况发生。

最佳答案

$(document).ready(function(){
$(".top-level-menu li,.second-level-menu li").hover(
	function(){
		$(this).children('ul').hide();
		$(this).children('ul').slideDown('slow');
	},
	function () {
		$('ul', this).slideUp('fast');            
	});
});
.third-level-menu
    {
        position: absolute;
        top: 0;
        right: -150px;
        width: 150px;
        list-style: none;
        padding: 0;
        margin: 0;
        display: none;
    }

    .third-level-menu > li
    {
        height: 30px;
        background: #999999;
    }
    .third-level-menu > li:hover { background: #CCCCCC; }

    .second-level-menu
    {
        position: absolute;
        top: 30px;
        left: 0;
        width: 150px;
        list-style: none;
        padding: 0;
        margin: 0;
        display: none;
    }

    .second-level-menu > li
    {
        position: relative;
        height: 30px;
        background: #999999;
    }
    .second-level-menu > li:hover { background: #CCCCCC; }

    .top-level-menu
    {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .top-level-menu > li
    {
        position: relative;
        float: left;
        height: 30px;
        width: 150px;
        background: #999999;
    }
    .top-level-menu > li:hover { background: #CCCCCC; }

    .top-level-menu li:hover > ul
    {
        /* On hover, display the next level's menu */
        display: inline;
    }


    /* Menu Link Styles */

    .top-level-menu a /* Apply to all links inside the multi-level menu */
    {
        font: bold 14px Arial, Helvetica, sans-serif;
        color: #FFFFFF;
        text-decoration: none;
        padding: 0 0 0 10px;

        /* Make the link cover the entire list item-container */
        display: block;
        line-height: 30px;
    }
    .top-level-menu a:hover { color: #000000; }
<ul class="top-level-menu">
    <li><a href="#">Home</a></li>
    <li>
        <a href="#">Offices</a>
        <ul class="second-level-menu">
            <li><a href="#">Chicago</a></li>
            <li><a href="#">Los Angeles</a></li>
            <li>
                <a href="#">New York</a>
                <ul class="third-level-menu">
                    <li><a href="#">Information</a></li>
                    <li><a href="#">Book a Meeting</a></li>
                    <li><a href="#">Testimonials</a></li>
                    <li><a href="#">Jobs</a></li>
                </ul>
            </li>
            <li><a href="#">Seattle</a></li>
        </ul>
    </li>
    <li><a href="#">Contact</a></li>
</ul>

关于jquery - 如何将子菜单添加到下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226871/

相关文章:

jquery - 使用 jQuery 进行表单验证并具有一些效果

javascript - 为什么js函数不会永久改变html代码?

html - 将 li 布局显示为 flex

jQuery - 如何选择除特定复选框之外的所有复选框?

javascript - 如何通过匹配包含的文本来填充下拉选择框?

javascript - 为什么 outerWidth 不适用于 jqgrid 行和列?

html - 为什么按钮标签自动垂直对齐文本

javascript - 添加 svg 图像作为语义 UI 输入的图标

javascript - 如何使用<ul>显示滚动内容?

javascript - JQuery:在按下的按钮下方显示div