Jquery不添加类

时间:2013-01-21 16:02:46

标签: jquery

<div class="LeftBar">
            <div class="CatListWrap">
                <ul class="CatList">
                    <li class="Selected">
                        <div class="CatName">Seasons <span class="CatNum">(78954)</span></div>
                        <ul class="SubCatList">
                            <li class="Selected">Summer <span class="CatNum">(78954)</span></li>
                            <li>Winter <span class="CatNum">(78954)</span></li>
                            <li>Autumn <span class="CatNum">(78954)</span></li>
                            <li>Rain <span class="CatNum">(78954)</span></li>
                        </ul>
                    </li>
                    <li>
                        <div class="CatName">Auro <span class="CatNum">(78954)</span></div>
                        <ul class="SubCatList">
                            <li>Auroras <span class="CatNum">(78954)</span></li>
                            <li>Black <span class="CatNum">(78954)</span></li>
                            <li>Bokeh <span class="CatNum">(78954)</span></li>
                            <li>ColourFull <span class="CatNum">(78954)</span></li>
                        </ul>
                    </li>
                    <li>
                        <div class="CatName">Auro <span class="CatNum">(78954)</span></div>
                        <ul class="SubCatList">
                            <li>Auroras <span class="CatNum">(78954)</span></li>
                            <li>Black <span class="CatNum">(78954)</span></li>
                            <li>Bokeh <span class="CatNum">(78954)</span></li>
                            <li>ColourFull <span class="CatNum">(78954)</span></li>
                        </ul>
                    </li>
                    <li>
                        <div class="CatName">Auro <span class="CatNum">(78954)</span></div>
                        <ul class="SubCatList">
                            <li>Auroras <span class="CatNum">(78954)</span></li>
                            <li>Black <span class="CatNum">(78954)</span></li>
                            <li>Bokeh <span class="CatNum">(78954)</span></li>
                            <li>ColourFull <span class="CatNum">(78954)</span></li>
                        </ul>
                    </li>
                </ul>

            </div>
            <script type="text/javascript">
                $(document).ready(function () {
                    WallMenu();
                })
            </script>
        </div>

而壁画是继承人

function WallMenu() {
    $(".CatList li").click(function () {
        $(".CatList li").removeClass("Selected");
        $(this, ".CatList li").addClass("Selected");
    });
    $(".CatList .Selected .SubCatList li").click(function () {
        $(".CatList .Selected .SubCatList li").removeClass("Selected");
        $(this, ".CatList .Selected .SubCatList li").addClass("Selected sd");
    });
}

单击时,它不会将所选类添加到SubCatList li项目。但是当它单击Catlist li项时它会将它添加到CatList li项目中。但是当点击SubCatList项时,它不会添加任何类。相反,它看起来像 。(内容).. 但是,如果我尝试添加除了“选定”以外的任何内容,它就会起作用。

我将代码更新为

function WallMenu() {
    $(".CatList li").click(function () {
        $(".CatList li").removeClass("Selected");
        $(this).addClass("Selected");
    });
    $(".SubCatList li").click(function () {
        $(".SubCatList li").removeClass("Selected");
        $(this).addClass("Selected");
        console.log("Add class to " + this.innerText);
    });
}

但仍然一样。

3 个答案:

答案 0 :(得分:2)

$(this, ".CatList li")
$(this, ".CatList .Selected .SubCatList li")

那些应该转过来:

$(".CatList li", this)
$(".CatList .Selected .SubCatList li", this)

当提供两个参数时,你会说:“搜索这个(第一个参数),里面这个(第二个参数)”。

========= 更新

上面的代码解释了您何时想要在您的选择内“搜索”。但是当你的代码看起来更好一些时,我假设你想把这个类添加到你点击的元素中。

如果是这种情况,则无需进行子选择,只需提供$(this)作为选择器。

$(".CatList li").click(function () {
    $(".CatList li").removeClass("Selected");
    $(this).addClass("Selected");
});

答案 1 :(得分:0)

尝试将$(".CatList .Selected .SubCatList li").click(function () {更改为$(".CatList ul.SubCatList li").click(function () {

答案 2 :(得分:0)

最后,我才能理解这些陈词滥调。 当点击subcatlist li元素(在catlist上)时,单击catlist li。 所以,首先它会删除catlist中每个li元素的所有选定类(包括subcatlist li)。

现在,在第一个函数中,选择的类被添加到catlist li中。所以catlist li项目仍然可以。但是subcatlist中的li项没有所选的类。解决这个问题的最好方法就是使用不同的课程。