<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);
});
}
但仍然一样。
答案 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项没有所选的类。解决这个问题的最好方法就是使用不同的课程。