2

示例代码和示例在这里

$("#menus > li > ul > li > a").click(function(){
    $(this).toggleClass("selected").siblings().removeClass("selected");

但是单击并选择的背景是有效的,其他单击多选不是删除无效...请帮助和解决方案...

4

3 回答 3

1

您的a元素没有兄弟姐妹。a您必须在 parent的兄弟姐妹中选择元素li

$("#menus > li > ul > li > a").click(function(){
    $('a',$(this).toggleClass("selected").parent().siblings()).removeClass("selected");
}

看到它工作:http: //jsfiddle.net/QFWLk/1/

于 2013-07-31T10:49:43.657 回答
1

您已将单击处理程序注册到a元素,但它没有兄弟姐妹。您需要转到父li元素找到其兄弟元素,然后深入到a这些兄弟元素中的元素

你需要

$("#menus > li > ul > li > a").click(function(){
    $(this).toggleClass("selected").parent().siblings().find('a').removeClass("selected");
});

演示:小提琴

如果您在两种类型之间导航,它再次有一个错误,所以请尝试

$("#menus > li > ul > li > a").click(function(){
    $('#menus a.selected').removeClass("selected");
    $(this).toggleClass("selected");
});

演示:小提琴

于 2013-07-31T10:50:47.217 回答
1

尝试这个

 $("#menus > li > ul > li > a").click(function(){
        $("#menus > li > ul > li > a").removeClass('selected');
        $(this).toggleClass("selected");

});

希望它会有所帮助

于 2013-07-31T10:53:23.233 回答