javascript - 列表打开或关闭时如何添加加号和减号图标?

标签 javascript jquery css

如何在关闭 UL 时添加加号,在打开时添加减号。

看我的代码。当列表没有子菜单时我需要添加加号图标,当列表打开时我需要添加减号图标。并在列表打开时添加 padding-left

$(document).ready(function() {
  $('ul.subcat').hide();
  $('li').click(function(event) {
    event.stopPropagation();
    $('> ul', this).toggle();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="headcat">
<li>item 
  <ul class="subcat">
    <li>subitem 1
      <ul class="subcat">
        <li>subsubitem 1
          <ul class="subcat">
            <li>
              <p>text</p>
            </li>
          </ul>
        </li>
        <li>subsubitem 2
          <ul class="subcat">
            <li>
              <p>text</p>
            </li>
            <li>subsubsubitem 1
              <ul class="subcat">
                <li>
                  <p>text</p>
                </li>
              </ul>
            </li>
            <li>subsubsubitem 2</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>item 2</li>
  </ul>
</li>
</ul>

最佳答案

您可以toggleClass 然后使用css pseudo 您可以应用fontAwsome。检查片段。

$(document).ready(function() {
  $('ul.subcat').hide();
  $('li').click(function(event) {
    event.stopPropagation();
    $('> ul', this).toggle();
    $(this).toggleClass("active");
  });
});
@import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css");
.headcat li i:before {
  font-family: FontAwesome;
  content: "\f067";
  padding-right: 5px;
}

.headcat li.active i:before {
  content: "\f068";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="headcat">
  <li>item 1 <i></i>
    <ul class="subcat">
      <li>subitem 1
        <ul class="subcat">
          <li>subsubitem 1
            <ul class="subcat">
              <li>
                <p>text</p>
              </li>
            </ul>
          </li>
          <li>subsubitem 2
            <ul class="subcat">
              <li>
                <p>text</p>
              </li>
              <li>subsubsubitem 1
                <ul class="subcat">
                  <li>
                    <p>text</p>
                  </li>
                </ul>
              </li>
              <li>subsubsubitem 2</li>
            </ul>
          </li>
        </ul>
      </li>
      <li>item 2</li>
    </ul>
  </li>
</ul>

关于javascript - 列表打开或关闭时如何添加加号和减号图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58007674/

相关文章:

javascript - 正则表达式 -/\w\b\w/

javascript - 如何通过 jquery 插入 javascript 代码?

html - 标题选项卡未正确填充......我想用灰色隐藏白色

css - 如何保持导航栏品牌与链接分组

javascript - JS new Date() 创建不同的 GMT

javascript - 在 div 中定位图像,然后将 div 定位在底部

javascript - 使用 ng-repeat 提供多个按钮

javascript - 如何防止页面在表单提交后重新加载 - JQuery

jquery - 从我点击的区域调整大小

css - 使用 Google Fonts Roboto 的字体粗细,正常 (400) 和粗体 (700) 有效,浅色 (300) 无效