しかし、Selected以外のものを追加しようとすると、機能します。**
コードを次のように更新しました
しかし、それでも同じです。
$(this, ".CatList li")
$(this, ".CatList .Selected .SubCatList li")
それらは好転する必要があります:
$(".CatList li", this)
$(".CatList .Selected .SubCatList li", this)
2 つのパラメーターを指定する場合は、「これ (最初のパラメーター)、この (2 番目のパラメーター)内で検索する」と言っています。
=========更新
上記の私のコードは、選択した「範囲内」でいつ検索するかを説明しています。しかし、コードをよく見てみると、クリックした要素にクラスを追加したいと思っていると思います。
その場合は、サブ選択する必要はありませんが、$(this)
as セレクターを提供するだけです。
$(".CatList li").click(function () {
$(".CatList li").removeClass("Selected");
$(this).addClass("Selected");
});
ようやくグリッチを理解することができました。subcatlist li 要素 (catlist 上にある) がクリックされると、その catlist li がクリックされます。したがって、最初に catlist 内のすべての li 要素 (サブキャットリスト li を含む) に対して選択されたすべてのクラスが削除されます。
ここで、最初の関数で、選択されたクラスが catlist li に追加されます。そのため、catlist li アイテムは問題ありません。しかし、サブキャットリストのアイテムには選択されたクラスがありません。これを回避する最善の方法は、別のクラスを使用することだと思います。
に変更$(".CatList .Selected .SubCatList li").click(function () {
してみてください$(".CatList ul.SubCatList li").click(function () {