Javascript 仅针对CSS中父级和子级之间的第一个直接匹配
我不知道标题是否有点让人困惑,但这段代码将更好地解释它Javascript 仅针对CSS中父级和子级之间的第一个直接匹配,javascript,jquery,css,Javascript,Jquery,Css,我不知道标题是否有点让人困惑,但这段代码将更好地解释它 功能选择(事件){ $('li').removeClass('is-active'); $(event.target).parent().addClass('is-active'); } .item{ 背景色:#C3C3; 显示器:flex; 弯曲方向:立柱; 边缘顶部:5px; 边缘底部:5px; } .item.is-active.itemName{ 背景色:红色; } .项目:悬停{ 光标:指针; } 父母亲 父母亲 儿
功能选择(事件){
$('li').removeClass('is-active');
$(event.target).parent().addClass('is-active');
}
.item{
背景色:#C3C3;
显示器:flex;
弯曲方向:立柱;
边缘顶部:5px;
边缘底部:5px;
}
.item.is-active.itemName{
背景色:红色;
}
.项目:悬停{
光标:指针;
}
-
父母亲
-
父母亲
-
儿童
-
儿童
删除每个元素的全局事件属性。将CSS调整为
.is-active {
background-color: red;
}
然后将单击事件附加到.item.itemName
或仅附加.itemName
功能选择(事件){
$('*').removeClass('is-active');
$(this.addClass('is-active');
}
$('.item.itemName')。在('click',select')代码>
.item{
背景色:#C3C3;
显示器:flex;
弯曲方向:立柱;
边缘顶部:5px;
边缘底部:5px;
}
.处于活动状态{
背景色:红色;
}
.项目:悬停{
光标:指针;
}
-
父母亲
-
父母亲
-
儿童
-
儿童
删除每个元素的全局事件属性。将CSS调整为
.is-active {
background-color: red;
}
然后将单击事件附加到.item.itemName
或仅附加.itemName
功能选择(事件){
$('*').removeClass('is-active');
$(this.addClass('is-active');
}
$('.item.itemName')。在('click',select')代码>
.item{
背景色:#C3C3;
显示器:flex;
弯曲方向:立柱;
边缘顶部:5px;
边缘底部:5px;
}
.处于活动状态{
背景色:红色;
}
.项目:悬停{
光标:指针;
}
-
父母亲
-
父母亲
-
儿童
-
儿童
使用.item.is active>.itemName
而不是.item.is-active.itemName
请参见下面的代码段:
功能选择(事件){
$('li').removeClass('is-active');
$(event.target).parent().addClass('is-active');
}
.item{
背景色:#C3C3;
显示器:flex;
弯曲方向:立柱;
边缘顶部:5px;
边缘底部:5px;
}
.item.处于活动状态>.itemName{
背景色:红色;
}
.项目:悬停{
光标:指针;
}
-
父母亲
-
父母亲
-
儿童
-
儿童
使用.item.is active>.itemName
而不是.item.is-active.itemName
请参见下面的代码段:
功能选择(事件){
$('li').removeClass('is-active');
$(event.target).parent().addClass('is-active');
}
.item{
背景色:#C3C3;
显示器:flex;
弯曲方向:立柱;
边缘顶部:5px;
边缘底部:5px;
}
.item.处于活动状态>.itemName{
背景色:红色;
}
.项目:悬停{
光标:指针;
}
-
父母亲
-
父母亲
-
儿童
-
儿童
只需为
中的
元素定义一个背景色
。我不知道你的意思,但请记住,孩子们也是可点击的,我希望他们在点击时有一个红色背景。尝试.item.is-active{
而不是.item.is-active.itemName{
。如果您需要阻止span
s,则需要添加e.stopPropagation()
,以防止默认的单击,该单击会为整个列表项添加背景。但这不是预期的效果。我想我是通过使用“>”实现的只需为
中的元素定义一个背景色
。我不知道你的意思,但请记住,孩子们也可以单击,我希望他们在单击时有一个红色背景。请尝试.item.is-active{
而不是.item.is-active.itemName{
。如果您需要阻止span
s,则需要添加e.stopPropagation()
,以防止默认的单击,该单击会为整个列表项添加背景。但这不是预期的效果。我想我是通过使用“>”实现的在他们身上。哦,哈哈,你是对的,我想我会换成这个,而不是我正在做的…谢谢!哦,哈哈,你是对的,我想我会换成这个,而不是我正在做的…谢谢!是的,这也有效,但我想我会去@guest271314建议的,因为它更干净。谢谢你的回答:)是的,这也有效,但我想我会去@guest271314建议的,因为它更干净。谢谢您的回复:)