open closest ul on click jQuery

vpfxa7rd  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(115)

当点击.market-metro时,打开最近的ul. children。

<ul class="drop-padding">
<li>
    <a class="market-metro">text</a>
    <ul class="children">...</ul>
</li>
<li>
    <a class="market-metro">text</a>
    <ul class="children">...</ul>
</li>
<li>
    <a class="market-metro">text</a>
    <ul class="children">...</ul>
</li>

我有以下几个,但不工作:

jQuery(".market-metro").click(function(){
    if (jQuery(".market-metro").closest('li').find('ul.children').hasClass("expanded")) {
        jQuery(".market-metro").closest('li').find('ul.children').removeClass("expanded").slideUp(250);
    } else {
        jQuery(".market-metro").closest('li').find('ul.children').addClass("expanded").slideDown(250);
    }
});
pinkon5k

pinkon5k1#

您需要使用$(this) ..你可以用.next()代替closest and find,用.not()

$(".market-metro").click(function(){
    $('ul.children').not( $(this).next('ul.children')).removeClass("expanded").slideUp();
    $(this).next('ul.children').toggleClass("expanded").slideToggle(250);
});

Working Demo
注意:一定要包含jQuery

相关问题