能'重新打开由jQuery关闭的drop-menu

时间:2016-10-05 18:44:55

标签: jquery twitter-bootstrap drop-down-menu

我不明白为什么如果我通过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") ;
}
});

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

知道为什么吗? 谢谢:))

修改

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

就像一个魅力:)

1 个答案:

答案 0 :(得分:0)

Bootstrap正在添加和删除&#34; open&#34;在您的下拉列表中,隐藏/显示功能在css中完成。因此,您的代码隐藏菜单的方式是课程无法显示菜单。

看起来你需要任何代码来关闭它,因为Bootstrap会为你处理,但如果你必须,请尝试:

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

这应该可以解决问题。