【问题标题】:Add vertical line along tree view when expanded展开时沿树视图添加垂直线
【发布时间】:2020-09-08 05:20:56
【问题描述】:

我试图在第一个 li 元素展开时沿它们添加一条垂直线,并在它们关闭但未出现时删除它们。请问li::after不做作业了?请帮我解决这个问题。

这条垂直线应该只沿着层次结构的第一级

我创建了一个包含三个列表项的树视图,并显示了我必须应用垂直线的实现代码

var toggler = document.getElementsByClassName("caret");
var i;

for (i = 0; i < toggler.length; i++) {
  toggler[i].addEventListener("click", function() {
    this.parentElement.querySelector(".nested").classList.toggle("active");
    this.classList.toggle("caret-down");
  });
}
ul, #main {
  list-style-type: none;
}

#myUL {
  margin: 0;
  padding: 0;

}
li::after{
border-left 1px solid black;
}
.caret {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none; 
  -ms-user-select: none; 
}

.caret::before {
  content: "\25B6";
  color: black;
  display: inline-block;
  margin-right: 6px;
}

.caret-down::before {
  -ms-transform: rotate(90deg); 
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);  
}

.nested {
  display: none;
  border-left 1px solid #000
}

.active {
  display: block;
  border-left 1px solid #000
}
<ul id="main">
  <li><span class="caret">First</span>
    <ul class="nested">
      <li>sub1</li>
      <li>sub2</li></ul>
      <li><span class="caret">Second</span>
        <ul class="nested">
          <li>sub1</li>
          <li>sub2</li></ul>
          <li><span class="caret">Third</span>
            <ul class="nested">
              <li>sub1</li>
              <li>sub2</li>
            </ul>
          </li>
      </li>  
  </li>
</ul>

【问题讨论】:

    标签: javascript html jquery css dom


    【解决方案1】:

    您可以使用.nested.active css 规则来做到这一点,如下所示:

    你应该在css下面添加:

    .nested.active{
       border-left:1px solid red;
    }
    

    在这个 sn-p 中添加了它:

    var toggler = document.getElementsByClassName("caret");
    var i;
    
    for (i = 0; i < toggler.length; i++) {
      toggler[i].addEventListener("click", function() {
        this.parentElement.querySelector(".nested").classList.toggle("active");
        this.classList.toggle("caret-down");
      });
    }
    ul, #main {
      list-style-type: none;
    }
    
    #myUL {
      margin: 0;
      padding: 0;
    
    }
    li::after{
    border-left 1px solid black;
    }
    .caret {
      cursor: pointer;
      -webkit-user-select: none;
      -moz-user-select: none; 
      -ms-user-select: none; 
    }
    
    .caret::before {
      content: "\25B6";
      color: black;
      display: inline-block;
      margin-right: 6px;
    }
    
    .caret-down::before {
      -ms-transform: rotate(90deg); 
      -webkit-transform: rotate(90deg);
      transform: rotate(90deg);  
    }
    
    .nested {
      display: none;
      border-left 1px solid #000
    }
    
    .active {
      display: block;
      border-left 1px solid #000
    }
    .nested.active{
    border-left:1px solid red;
    }
    <ul id="main">
      <li><span class="caret">First</span>
        <ul class="nested">
          <li>sub1</li>
          <li>sub2</li></ul>
          <li><span class="caret">Second</span>
            <ul class="nested">
              <li>sub1</li>
              <li>sub2</li></ul>
              <li><span class="caret">Third</span>
                <ul class="nested">
                  <li>sub1</li>
                  <li>sub2</li>
                </ul>
              </li>
          </li>  
      </li>
    </ul>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      相关资源
      最近更新 更多