Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery如果子元素处于活动状态,则选择父元素_Jquery_Css - Fatal编程技术网

Jquery如果子元素处于活动状态,则选择父元素

Jquery如果子元素处于活动状态,则选择父元素,jquery,css,Jquery,Css,我花了数小时寻找CSS only-then jQuery解决方案。我到处都见过,但不知道如何从头开始 我想做的是,我有一个菜单作为一个列表,其中有另一个列表,还有另一个。这是一个三级水平菜单 我想做的是,当一个孩子被选中时,我想改变父母的背景颜色li a,这样它看起来像面包屑,如果你知道我的意思的话 这是我目前的css .menu { z-index: 9999; position:relative; background-image: url(images/top_na

我花了数小时寻找CSS only-then jQuery解决方案。我到处都见过,但不知道如何从头开始

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

我想做的是,当一个孩子被选中时,我想改变父母的背景颜色
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
联系人3
我有一个类作为
选定的
附加到它,我的CMS将把这个类添加到选定的元素中。因此,我要做的是更改父对象的背景颜色,您所需要的就是使用选定的类选择锚点,然后迭代它的li来更改它们的背景

在下面的语句中,我为parentli元素添加了parent

$('.menu li a.selected').parents('li').addClass('parent');​
我为父类定义了背景色

.parent {
   background-color:#ff0000;
}
下面是一个工作示例:

像这样吗

添加了这个jquery

$('.menu ul ul > li').click(function(){
    $(this,'a').addClass('selected');
});​

并且改变了一些css,它在小提琴上

可能是@halilb答案是你想要的,但是看看这个,可能会提高你的性能和菜单的外观

演示:
代码:

从这里您可以找到您需要的正确实现的jQuery和css

创建新的功能是好的,但如果它是免费的,并且最重要的部分是经过测试的,有更多的功能和结构良好的代码,那么就不好了


注意:我并不是鼓励你每次都偷代码,或者总是复制别人的代码,但可以节省开发时间。

三级菜单如何?谢谢