可以'重新打开由 jQuery 关闭的下拉菜单

Posted

技术标签:

【中文标题】可以\'重新打开由 jQuery 关闭的下拉菜单【英文标题】:Can' reopen drop-menu closed by jQuery可以'重新打开由 jQuery 关闭的下拉菜单 【发布时间】:2017-02-14 08:15:19 【问题描述】:

我不明白为什么如果我通过 jQuery 关闭下拉菜单,然后我无法通过单击按钮重新打开它。

下拉菜单的代码:

                   <div class="btn-group">
                   <button type="button" id="BtPeriod" class="btn btn-primary btn-sm brd-rad-0 dropdown-toggle" data-toggle="dropdown">
                       <i class="fa fa-area-chart"></i><span class="pad-20">15 last days</span><span class="caret"></span>
                   </button>
                   <div class="dropdown-menu pull-right pad-20 bor-g-1" style="width:420px;">
                       <div class="fnt-1-5 pad-b-20 brd-rad-6"><i class="fa fa-area-chart pad-r-20"></i>Timelaps of Lines Charts</div>
                       <div class="row">
                           <div class="col-xs-6"><button type="button" id="BtLast15days" class="btn btn-grey brd-rad-0 btn-block">15 last days</button></div>
                           <div class="col-xs-6"><button type="button" id="BtCurrentMonth" class="btn btn-grey brd-rad-0 btn-block">The current month</button></div>
                       </div>
                   </div>
               </div>

关闭它的 jQuery 代码:

    $("#BtCurrentMonth").on("click", function(event) 
if(!$("#BtCurrentMonth").hasClass("disabled")) 
    if(isMobile.any() == null) parent.NProgress.start() ;
    $("#BtPeriod").html("<i class='fa fa-area-chart'></i><span class='pad-20'>The current month</span><i class='fa fa-spinner fa-spin fa-lg'></i>") ;
    //$(".dropdown-menu").hide() ;
    //$("#BtPeriod").prop("disabled", true) ;
    //$(".dropdown-menu").slideUp("fast") ;
    $("#IfAccountsChart").attr("src", "http://localhost/dev.sublime-art.com/sublime-admin/pages/adminhome/iframes/if_accounts_charts.php?period=onemonth") ;

);

如果我取消注释这 3 种关闭下拉菜单的方式之一,我会发现自己的下拉菜单无法重新打开。

知道为什么吗? 谢谢:)

编辑

$(".btn-group").removeClass("open"); 

像魅力一样工作:)

【问题讨论】:

你有打开它的代码吗? 不,我没有。没想到我需要它,因为它会在第一次点击 #BtPeriod 时打开。 所以我完全理解了这个问题,你点击按钮,它打开(这段代码在哪里?),你再次点击按钮,它关闭,然后你第三次点击按钮而且打不开? 是的,由于 bootstrap dropdow-menu 默认行为,打开工作正常,例如:w3schools.com/bootstrap/…。但是当添加一些 jQuery 时,默认行为不再起作用了。 看起来您根本不需要任何关闭代码。 Bootstrap 似乎正在为您处理它。 【参考方案1】:

Bootstrap 在您的下拉列表中添加和删除“打开”类,隐藏/显示功能在 css 中完成。因此,您的代码以类无法显示菜单的方式隐藏菜单。

您似乎不需要任何代码来关闭它,因为 Bootstrap 会为您处理,但如果必须,请尝试:

$(".dropdown-menu").removeClass("open");

这应该可以解决问题。

【讨论】:

$(".btn-group").removeClass("open"); 上工作就像一个魅力:)

以上是关于可以'重新打开由 jQuery 关闭的下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

jquery实现下拉

Jquery 没有关闭下拉菜单

如何让下拉菜单在点击时打开/关闭而不是悬停?

在内部单击时保持 Bootstrap 下拉菜单打开

Bootstrap 下拉菜单在悬停时关闭

带有多个子菜单下拉菜单的 jQuery 导航菜单关闭父菜单项