这是代码,有人可以帮忙修改吗?
(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);
有人可以帮我修改
答案 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>