javascript - 我怎样才能在所有选定的 li-s 中都有白色 url?

标签 javascript jquery html css html-lists

我制作了一个 jQuery 垂直下拉菜单,我希望在所有悬停的 li-s 中都有白色 url,而不仅仅是最后一个。

HTML:

<div class="left_menu">


    <ul class="menu">
        <li>
            <a href="#" class="menu_categories">Categories</a>

            <ul>
                <li><a href="#" class="menu_categories_add">Add category</a></li>
                <li><a href="#" class="menu_categories">Manage categories</a></li>
            </ul>
        </li>



        <li>
            <a href="#" class="menu_pages">Galleries</a>

            <ul>
                <li><a href="#" class="menu_pages_add">Add gallery</a></li>
                <li><a href="#" class="menu_pages">Manage galleries</a></li>
            </ul>
        </li>



        <li>
            <a href="#" class="menu_pages">Pages</a>

            <ul>

                <li>
                    <a href="#" class="menu_pages_add">Add page</a>

                    <ul>
                        <li><a href="#" class="menu_pages_add">Add page</a></li>
                        <li><a href="#" class="menu_pages">Manage pages</a></li>
                    </ul>

                </li>


                <li><a href="#" class="menu_pages">Manage pages</a></li>
            </ul>
        </li>



        <li><a href="#" class="menu_settings">Settings</a></li>
    </ul>


</div>

CSS:

ul {
    list-style-type: none;
    padding: 0px;
    margin: 0px;
}

.left_menu {
    width: 219px;
}

.menu li {
    font-weight: 300;
    font-family: verdana;
    font-size: 12px;
    border-bottom: 1px solid #222222;
    border-right: 1px solid #222222;
    background-color: rgba(0,0,0, 0.2);
}

.menu li:hover {
    background-color: rgba(0,0,0, 0.4);
}

.menu li:last-child {
    border-bottom: none;
}

.menu li a {
    text-decoration: none;
    display: block;
    color: #666666;
    padding: 10px 15px;
}

.menu li a:hover {
    color: #ffffff;
}

.menu li ul {
    display: none;
    position: absolute;
    margin: -34px 0 0 219px;
    width: 219px;
}

.menu li ul li {
    background-color: rgba(0,0,0, 0.2);
}

.menu li ul li:hover {
    background-color: rgba(0,0,0, 0.4);
}

jQuery:

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

请看这里:JSFiddle

此外,如果您认为可以改进我的 CSS 和 jQuery,也欢迎您。谢谢!

最佳答案

看这里http://jsfiddle.net/Xg6jR/3/

我所做的是将悬停从 a 标签上更改为 li 标签,并将路径修改为直接指向 a:

.menu li:hover > a {
    color: #ffffff;
}

我还添加了以下行并一起删除了 jQuery,使菜单显示时没有 javascript。

 .menu li:hover > ul {
      display: block;   
  }

关于javascript - 我怎样才能在所有选定的 li-s 中都有白色 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725501/

相关文章:

javascript - 鼠标拖动时背景移动 Fabric.js

javascript - 哪些 JavaScript 对象默认不进行深度克隆?

javascript - 在 AngularJS 之后加载 jQuery

javascript - 使用javascript自动链接页面上的短语

javascript - 如何使用 jQuery 反转悬停状态?

javascript - fancybox div 中的本地链接不起作用

html - Bootstrap 文本在导航中一个在另一个之上

javascript - 嵌套iframe跨域通信

javascript - 为什么点击提交按钮后无法清除数据?

javascript - 由人类或 jQuery 触发的事件