可折叠的手风琴可以向下滑动,但不会向上滑动

时间:2019-01-24 04:02:54

标签: javascript wordpress woocommerce

这是代码,有人可以帮忙修改吗?

(function($){
$(document).ready(function() {

// Categories menu opening
// Categories menu opening
$('.woocommerce.widget_product_categories .product-categories li.cat-parent').prepend('<div class="cat-menu-close"></div>');

$( document ).on( "click", ".woocommerce.widget_product_categories .product-categories li.cat-parent:not(.opened) > .cat-menu-close", function(e) {
    $(this).parent().addClass('opened');

    $(this).next().next('ul.children').slideDown();

});
}) (jQuery);

有人可以帮我修改

1 个答案:

答案 0 :(得分:1)

要通过滑动效果“切换”元素的可见性,可以使用slideToggle

请注意,您需要从选择器中删除:not(.opened),因为当此父元素具有此类时,处理程序将无法工作。

$(document).on("click", ".woocommerce.widget_product_categories .product-categories li.cat-parent > .cat-menu-close", function(e) {
  var $catParent = $(this).closest('li.cat-parent');
  var state = $catParent.hasClass('close');

  $catParent.toggleClass('opened', !state);

  $(this).nextAll('ul.children:first').slideToggle(state);
});
.cat-menu-close {
  cursor: pointer;
}

ul {
  list-style: none;
}

ul.children {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="woocommerce widget_product_categories">
  <div class="product-categories">
    <ul>
      <li class="cat-parent">
        <span class="cat-menu-close">
          <button>Expand/collapse</button>
        </span>
        
        <div>Random sibling element</div>
        
        <ul class="children">
          <li>Child item</li>
          <li>Child item</li>
          <li>Child item</li>
        </ul>
      </li>
    </ul>
  </div>
</div>