当前位置: 首页 > 知识库问答 >
问题:

为家长创建手风琴下拉菜单

卜泓
2023-03-14

我在stackoverflow的帮助下设法拼凑了以下jQuery:

jQuery( document ).ready(function() {
    jQuery(".product-categories .cat-item-17").attr("data-toggle", "collapse").attr("role", 
"button").attr("aria-expanded", "false").attr("aria-controls", "collapseMenu").attr("href", 
"#childcats1").attr("id", "parent-sidebar");
    jQuery(".product-categories .cat-item-17 .children").attr("id", "childcats1").addClass("collapse");

});

jQuery( document ).ready(function() {
    jQuery(".product-categories .cat-item-22").attr("data-toggle", "collapse").attr("role", 
"button").attr("aria-expanded", "false").attr("aria-controls", "collapseMenu").attr("href", 
"#childcats2").attr("id", "parent-sidebar");
    jQuery(".product-categories .cat-item-22 .children").attr("id", "childcats2").addClass("collapse");

});

上面的脚本为我在Wordpress中的每个父类别添加了各种属性(第一个li与te类'cat-在父类别中'),并将href的ID添加到子类别(嵌套的ul与类'孩子')。这是为了创建一个引导手风琴风格的导航下拉框。请参阅下面输出的html:

<ul class="product-categories">

<li class="cat-item-17 cat-parent current-cat-parent collapsed" data-toggle="collapse" role="button" 
aria-expanded="false" aria-controls="collapseMenu" href="#childcats1" id="parent-sidebar">
<a href="https://www.example.com/clothing/">Clothing</a>
  <ul class="children collapse" id="childcats1" style="">
  <li class="cat-item cat-item-20"><a 
  href="https://www.example.com/clothing/accessories/">Accessories</a></li>
  <li class="cat-item cat-item-19"><a href="https://www.example.com/clothing/hoodies/">Hoodies</a> 
  </li>
  <li class="cat-item cat-item-18 current-cat"><a 
  href="https://www.example.com/clothing/tshirts/">Tshirts</a></li>
  </ul>
</li>

<li class="cat-item cat-item-22 cat-parent collapsed" data-toggle="collapse" role="button" aria- 
expanded="false" aria-controls="collapseMenu" href="#childcats2" id="parent-sidebar">
<a href="https://www.example.com/decor/">Decor</a>
  <ul class="children collapse" id="childcats2" style="">
  <li class="cat-item cat-item-31"><a href="https://www.example.com/decor/pennants/">Pennants</a> 
  </li>
  </ul>
</li>

</ul>

问题是当我在Wordpress中创建新的父菜单项时,我必须编辑我的jquery脚本来添加新的cat-parent和children ID。

是否有一种方法可以避免使用某种foreach脚本执行此操作,即:

foreach cat父级添加属性唯一的href ID,并为子级ul添加唯一的ID?

谢谢你的帮助。

共有1个答案

卢枫涟
2023-03-14

您可以使用 .each 循环通过 li,然后使用 $(this) 将属性添加到您的 lis 。另外,要将id添加您的孩子,您可以使用$(this).find(“.children”)这将引用孩子ul,然后在那里添加属性。

演示代码:

//loop through li
$(".product-categories > li").each(function(i) {
  //use this to refer current li
  $(this).attr("data-toggle", "collapse").attr("role",
    "button").attr("aria-expanded", "false").attr("aria-controls", "collapseMenu").attr("href",
    `#childcats${i}`).attr("id", `parent-sidebar${i}`);
  //use .find to get children ul and add if there
  $(this).find(".children").attr("id", `childcats${i}`).addClass("collapse");
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<ul class="product-categories">
  <li class="cat-item-17 cat-parent current-cat-parent collapsed">
    <a href="https://www.example.com/clothing/">Clothing</a>
    <ul class="children" style="">
      <li class="cat-item cat-item-20"><a href="https://www.example.com/clothing/accessories/">Accessories</a></li>
      <li class="cat-item cat-item-19"><a href="https://www.example.com/clothing/hoodies/">Hoodies</a>
      </li>
      <li class="cat-item cat-item-18 current-cat"><a href="https://www.example.com/clothing/tshirts/">Tshirts</a></li>
    </ul>
  </li>
  <li class="cat-item cat-item-22 cat-parent collapsed">
    <a href="https://www.example.com/decor/">Decor</a>
    <ul class="children" style="">
      <li class="cat-item cat-item-31"><a href="https://www.example.com/decor/pennants/">Pennants</a>
      </li>
    </ul>
  </li>

</ul>
 类似资料:
  • 手风琴效果其实就是通过JS改变元素的height,然后加上transition来让css动起来。 准备HTML结构 这里我们使用 dl , 因为 dt 刚好可以模拟标题, dd 模拟内容。 <div class="panel"> <dl> <dt>One Item</dt> <dd>One Item Content .</dd>

  • 我正在使用jQuery手风琴来隐藏一些数据。 accordion标题是一个带有一些标题的表格。有一个标题,我不希望你点击它,因为手风琴事件会触发。 所以 手风琴是可折叠的,如果您单击Test2(类nofunction),手风琴事件不应触发。但是如果您单击Test或其他表头,手风琴应该会触发事件。 我可以添加这个功能吗? 更新测试http://jsfiddle.net/e3Q8d/,包括jQuery

  • jQueryUI中的Accordion Widget是一个基于jQuery的可扩展和可折叠内容持有者,它被分成几个部分,可能看起来像标签。 jQueryUI提供了accordion()方法来实现这一点。 语法 (Syntax) accordion()方法可以使用两种形式 - $(selector,context).accordion(options)方法 $(selector, context).

  • 描述 (Description) 手风琴是一个图形控制元素,显示为堆叠的项目列表。 每个手风琴都可以expanded或stretched以显示与手风琴相关的内容。 可折叠布局 当您使用单个单独的可折叠元素时,您需要省略accordion-list包装元素。 以下是可折叠布局的结构 - <!-- Single collapsible element ------> <div class = "acc

  • 本文向大家介绍Bootstrap 手风琴菜单的实现代码,包括了Bootstrap 手风琴菜单的实现代码的使用技巧和注意事项,需要的朋友参考一下 好了,废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上所述是小编给大家介绍的Bootstrap 手风琴菜单的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍Jquery 垂直多级手风琴菜单附源码下载,包括了Jquery 垂直多级手风琴菜单附源码下载的使用技巧和注意事项,需要的朋友参考一下 首先给大家展示下效果图,喜欢的朋友继续往下看哦。 这是一款简单但实用的多级垂直手风琴下拉列表菜单。该多级手风琴菜单完全使用CSS来制作,它通过将不同的子菜单进行分组,制作出多级菜单的效果。 该多级手风琴菜单通过在checkbox元素上使用:checke