【问题标题】:open closest ul on click jQuery点击jQuery打开最近的ul
【发布时间】:2016-03-15 09:38:44
【问题描述】:

点击 a.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);
    }
});

【问题讨论】:

    标签: jquery find html-lists next closest


    【解决方案1】:

    您需要使用$(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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    相关资源
    最近更新 更多