Можно повторно открыть выпадающее меню, закрытое jQuery

#jquery #twitter-bootstrap #drop-down-menu

#jquery #twitter-bootstrap #выпадающее меню

Вопрос:

Я не понимаю, почему, если я закрываю выпадающее меню с помощью 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"); 
  

работает как шарм 🙂

Комментарии:

1. У вас есть код, который его открывает?

2. Нет, у меня нет. Не думал, что мне это нужно, поскольку оно открывается при первом нажатии на #BtPeriod.

3. Итак, чтобы я полностью понял проблему, вы нажимаете кнопку, она открывается (где этот код?), Вы снова нажимаете кнопку, она закрывается, а затем вы нажимаете кнопку в третий раз, и она не открывается?

4. Да, открытие работает благодаря поведению выпадающего меню начальной загрузки по умолчанию, как в этом примере: w3schools.com/bootstrap /. … Но при добавлении некоторого jQuery поведение по умолчанию больше не работает.

5. Похоже, вам вообще не нужен какой-либо код закрытия. Bootstrap, похоже, справляется с этим за вас.

Ответ №1:

Bootstrap добавляет и удаляет класс «открыть» в вашем выпадающем списке, возможность скрыть / показать выполняется в css. Итак, ваш код скрывает меню таким образом, что класс не может отобразить меню.

Не похоже, что вам нужен какой-либо код, чтобы закрыть его, поскольку Bootstrap обрабатывает это за вас, но если вам нужно, попробуйте:

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

Это должно сработать.

Комментарии:

1. Вкл $(".btn-group").removeClass("open"); . работает как шарм 🙂