#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");
. работает как шарм 🙂