单击时显示子类别

Posted

技术标签:

【中文标题】单击时显示子类别【英文标题】:Display Child Categories on click 【发布时间】:2018-09-13 15:40:24 【问题描述】:

在我的 wordpress 网站上,我有一个显示每个类别的子类别的菜单。我想要做的是默认隐藏子类别并仅在单击父类别时显示它们。

我的 html

<ul class="scrolling cat mCustomScrollbar _mCS_2 mCS-autoHide" style="position: relative; overflow: visible;">
<div id="mCSB_2" class="mCustomScrollBox mCS-minimal-dark mCSB_vertical mCSB_outside" style="max-height: 145px;" tabindex="0">
<div id="mCSB_2_container" class="mCSB_container" style="position: relative; top: -240px; left: 0px;" dir="ltr">
<li class="cat-item cat-item-31">
<a href="https://www.website.com/option">Option</a> <span>11</span>
<ul class="children">
<li class="cat-item cat-item-10867">
<a href="https://www.website.com/option2">Another option</a> <span>0</span>
</li>
</ul>
</li>

我的函数.php

function categorias() 
$args = array('hide_empty' => FALSE, 'title_li'=> __( '' ), 'show_count'=> 1, 'echo' => 0 );             
$links = wp_list_categories($args);
$links = str_replace('</a> (', '</a> <span>', $links);
$links = str_replace(')', '</span>', $links);
echo $links;   

有什么想法吗?谢谢。

【问题讨论】:

【参考方案1】:

使用 Css 隐藏它们:-

ul.children
  display:none;

然后用jQuery打开它们:-

jQuery('li.cat-item').on('click',function()
   $('ul.children').hide();
   $(this).find('ul.children').show();
);

【讨论】:

@JacobK。很高兴帮助你:):) 我刚刚意识到上面的函数也会从 cmets 部分隐藏 ul.children。 =/ 知道如何仅从指定的 div 中隐藏 ul.children 吗?再次感谢。 `$(this) 本身会检查特定的 html(被点击)。所以我无法理解你的问题。 对不起,我的错。我设法通过在 css 中添加 li.cat-item > ul.children 来修复它。感谢您的快速回复!【参考方案2】:

如下使用这个Css

 <style>     
ul.childrendisplay:none
</style>

javascript 中:

<script type="text/javascript">
$('.cat-item').click(function()

    if($(this).find('ul.children'))
    
        $(this).find('ul.children').toggle();
    
);
</script>

【讨论】:

感谢您的回答。 :)

以上是关于单击时显示子类别的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 菜单 - 单击时显示子菜单

Shiny/DT:在初始加载时显示子行

如何在 Drupal 的主分类页面中显​​示子术语?

查看子类别时显示 WooCommerce 父类别缩略图

如何从闪亮的点击中获取x类别

TableView 仅在单击时显示内容