但是,如果我尝试添加除 Selected 以外的任何内容,它就可以工作。**
我将代码更新为
但还是一样。
$(this, ".CatList li")
$(this, ".CatList .Selected .SubCatList li")
那些应该转过来:
$(".CatList li", this)
$(".CatList .Selected .SubCatList li", this)
当提供两个参数时,您是在说:“在这个(第二个参数)内部搜索这个(第一个参数)”。
=========更新
我上面的代码解释了当你想在你的选择“内”搜索时。但是,当您更好地查看您的代码时,我假设您想将该类添加到您单击的元素中。
如果是这种情况,您不需要子选择,而只需提供$(this)
as 选择器。
$(".CatList li").click(function () {
$(".CatList li").removeClass("Selected");
$(this).addClass("Selected");
});
尝试更改$(".CatList .Selected .SubCatList li").click(function () {
为$(".CatList ul.SubCatList li").click(function () {
最后我才能够理解故障。当点击 subcatlist li 元素(位于 catlist 上)时,会触发 catlist li 被点击。因此,首先它会删除 catlist(包括 subcatlist li)中每个 li 元素的所有选定类。
现在,在第一个函数上,将所选类添加到 catlist li。所以 catlist li 项目仍然可以。但是 subcatlist 中的 li 项目没有选定的类。我认为解决这个问题的最好方法是使用不同的课程。