如果子元素处于事件状态,Jquery 选择父 li a

标签 jquery css

我花了好几个小时才找到一个 CSS 和 jQuery 解决方案。我到处都看到过这种情况,但不确定如何从头开始。

我想要做的是,我有一个菜单作为列表,其中有另一个列表,还有另一个。所以这是一个三级水平菜单。

我想做的是,当一个 child 被选中时,我想改变 parent 的背景颜色li a所以它看起来像面包屑,如果你明白我的意思的话。

这是我当前的CSS

.menu {
    z-index: 9999;
    position:relative;
    background-image: url(images/top_nav_lili_repeat.png);
    background-repeat: repeat-x; height:38px;
    font-family: 'Open Sans', sans-serif;
    text-transform:uppercase;
}
.menu ul ul {
    display: none;
}
.menu ul li:hover > ul {
    display: block;
}
.menu ul {

    color: #797979;
    padding: 0 0px;

    list-style: none;
    position: relative;
    display: inline-table;
}
.menu ul:after {
    content: "";
    clear: both;
    display: block;
}
.menu ul li {
    float: left;
}
.menu ul li:hover {
    background: #4b545f;
}
.menu ul li:hover a {
    color: #EBAD2D;
}
.menu li a.seleted ul li a{ background-color:#ff0000;}
.menu ul li a {
    display: block;
    padding: 11px 16px;
    color: #bbb;
    text-decoration: none;
}
.menu ul li a.selected { background-color:#ff0000;}

.menu ul ul {
    background: #5f6975;
    border-radius: 0px;
    padding: 0;
    position: absolute;
    top: 100%;
    width: 200px;
}
.menu ul ul li {
    float: none;
    border-top: 1px solid #6b727c;
    border-bottom: 1px solid #575f6a;
    position: relative;
}
.menu ul ul li a {
    padding: 10px 16px;
    color: #fff;
}
.menu ul ul li a:hover {
    background: #4b545f;
}
.menu ul ul ul {
    position: absolute;
    left: 100%;
    top: 0;
}

我当前的 HTML 菜单如下所示。

<div class="menu">

            <ul>
    <li><a href="#" title="Menu Item 1">Home</a>
        <ul>
            <li><a href="#" title="Sub-Menu Item 1">Home link 1</a>
                <ul>
                    <li><a href="#" title="Sub-Sub-Menu Item 1">Home Link 1 Link 1</a></li>
                    <li><a href="#" title="Sub-Sub-Menu Item 2">Home Link 1 Link 2</a></li>
                    <li><a href="#" title="Sub-Sub-Menu Item 3">Home Link 1 Link 3</a></li>
                </ul>
            </li>
            <li><a href="#" title="Sub-Menu Item 2">About</a>
                <ul>
                    <li><a href="#" title="Sub-Sub-Menu Item 1">About 1</a></li>
                    <li><a href="#" title="Sub-Sub-Menu Item 2">About 2</a></li>
                    <li><a href="#" title="Sub-Sub-Menu Item 3">About 3</a></li>
                </ul>
            </li>
            <li><a href="#" title="Sub-Menu Item 3">Contact</a>
                <ul>
                    <li><a href="#" title="Sub-Sub-Menu Item 1">Contact 1</a></li>
                    <li><a href="#" title="Sub-Sub-Menu Item 2">Contact 2</a></li>
                    <li><a  class="selected" href="#" title="Sub-Sub-Menu Item 3">Contact 3</a></li>
                </ul>
            </li>
        </ul>
    </li>

</ul>
          </div>

如果你看最后li a Contact 3我有一个附加到它的类 selected ,我的 CMS 会将此类添加到所选元素。所以我想做的是改变 parent 的背景颜色<a>Contact</a><a>Home</a>使用 css 或 Jquery,我也希望它与跨浏览器兼容。谢谢大家。

这是一个 fiddle :http://jsfiddle.net/8s3Bc/

最佳答案

您只需要选择具有selected 类的 anchor ,并迭代它的li parents改变他们的背景。

在下面的语句中,我为父 li 元素添加了 parent 类。

$('.menu li a.selected').parents('li').addClass('parent');​

我还为parent 类定义了背景颜色。

.parent {
   background-color:#ff0000;
}

这是工作示例:http://jsfiddle.net/dhMSN/

关于如果子元素处于事件状态,Jquery 选择父 li a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836296/

相关文章:

java - Vaadin 7 自定义文本字段

javascript - 使用 php 数组从 DatePicker 中的 onSelect 禁用 datepicker 中的日期和 timepicker 中的时间

javascript - Div 选择器未在函数定义中发送调试器

jquery - 输入值是否包含以下任何内容

php - 解析 Json 响应时出现问题

html - CSS 过渡在 Chrome 中不起作用

CSS:在底部切片径向渐变 50% 以获得另一个类似的径向渐变?

css - Foundation 4 中等以上的顶部栏切换工具栏

jquery - 如果用户单击两次,如何强制选择复选框?

asp.net - 无法让我的导航栏以网站 ASP.Net 为中心