Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅针对CSS中父级和子级之间的第一个直接匹配_Javascript_Jquery_Css - Fatal编程技术网

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建议的,因为它更干净。谢谢您的回复:)