Updated fiddle
Вам нужно сделать только одно изменение:
Вместо того чтобы слушать hide.bs.dropdown
событие только для .dropdown.active
применить обработчик события .dropdown
.
В основном, изменения:
$(".dropdown.active").on("hide.bs.dropdown",function(e) {
к:
$(".dropdown").on("hide.bs.dropdown",function(e) {
EDIT: Чтобы переопределить поведение по умолчанию выпадающий, вам нужно игнорировать состояние active
ince более одного элемента li
может оставаться расширенным, и вам нужно будет переключать видимость самостоятельно.
Here's the updated demo
Код:
$(function(){
// Handle show/hide toggle yourself
$(".dropdown").on("click",function(e) {
if($(e.currentTarget).hasClass("open"))
$(e.currentTarget).toggleClass("open",false);
else
$(e.currentTarget).toggleClass("open",true);
e.preventDefault();
return false;
});
// suppressing default bahavior
$(".dropdown").on("hide.bs.dropdown", doNothing);
$(".dropdown").on("show.bs.dropdown", doNothing);
function doNothing(e) {
e.preventDefault();
return false;
}
});
Спасибо за помощь , Я попробовал и обновил jsfiddle. Проблема в том, что он делает все активным. Можете ли вы мне помочь с этим? – user3121847
Посмотрите обновленное техническое решение! –
Исправлено: Не указано ReferenceError: e не определено. Просто измените "функцию doNothing (e) {" –