Javascript 如何使用jQuery向菜单项和子菜单项添加活动类
我是JS/jQuery新手,我试图在单击时将活动类添加到我的菜单项中,也添加到子菜单项中Javascript 如何使用jQuery向菜单项和子菜单项添加活动类,javascript,jquery,Javascript,Jquery,我是JS/jQuery新手,我试图在单击时将活动类添加到我的菜单项中,也添加到子菜单项中 $(文档).ready(函数(){ $(“#pag”)。单击(函数(){ $(“span>label”).removeClass(“activ”); $(此).addClass(“活动”); }); }); .activ{ 颜色:红色 } Main1 subs 1 洛雷姆1 缅因州2 Sub2 洛雷姆2 代码的问题是您正在父级ul上添加事件处理程序。所以在$(this.addClass(
$(文档).ready(函数(){
$(“#pag”)。单击(函数(){
$(“span>label”).removeClass(“activ”);
$(此).addClass(“活动”);
});
});代码>
.activ{
颜色:红色
}
Main1
subs 1
洛雷姆1
缅因州2
-
Sub2
洛雷姆2
代码的问题是您正在父级ul
上添加事件处理程序。所以在$(this.addClass(“activ”)代码>这将指向UL而不是标签
您需要将事件附加到标签上
还有几个要点:
- 使用委托。在(eventName,handler)
上使用,而不是。单击。这也适用于动态添加的元素
而不是$(“span>标签”)。删除类(“activ”)代码>,do$(“span>label.activ”).removeClass(“activ”)代码>。DOM操作非常昂贵。因此,只获取那些具有activ
类的元素
以下是示例代码
$(文档).ready(函数(){
$(“#pag label.list group item”)。在('click',function()上{
$(“span>label.activ”).removeClass(“activ”);
$(此).addClass(“活动”);
});
});代码>
.activ{
颜色:红色
}
Main1
-
潜艇1
洛雷姆1
缅因州2
-
Sub2
洛雷姆2
所有
内部的内容都应该以标签开始,修复您的代码下面的代码应该可以正常工作
$(文档).ready(函数(){
$(“#pag li”)。单击(函数(){
$(this.parent().add(“li.activ”).removeClass(“activ”);
$(此).addClass(“活动”);
});
});代码>
.activ{
颜色:红色
}
Main1
-
潜艇1
-
洛雷姆1
缅因州2
-
Sub2
洛雷姆2
问题是您正在向$(this)
添加一个类,该类指向ul
。更改代码,以便仅当#pag
最后,$(this.addClass(“activ”)因为$('this')
是实际点击的标签
下面是一个工作片段
$(文档).ready(函数(){
$(“#pag标签”)。单击(函数(){
$(“pag标签”).removeClass(“activ”);
$(此).addClass(“活动”);
});
});代码>
.activ{
颜色:红色
}
Main1
subs 1
洛雷姆1
缅因州2
Sub2
洛雷姆2
部分问题是因为您的HTML无效。只有li
或ol
元素可以是ul