Я использую Angular Bootstrap в своем приложении. Я использую 2 панели навигации в этом. он работает правильно для меня и отзывчив тоже. Что я хочу сделать, так это сделать кнопку переключения навигации в виде раскрывающегося списка вместо того, чтобы приходить и оставаться там.
Вот что я пробовал http://plnkr.co/edit/CMxdQnSWCiDmOt9NWngJ?p=preview
Я создал директиву
app.directive('navDropdown', function ($parse, $document) {
return {
restrict: 'A',
link: function (scope, element, attr) {
var fn = $parse(attr.navDropdown);
$document.bind('click', clickOutsideHandler);
element.bind('remove', function () {
$document.unbind('click', clickOutsideHandler);
});
function clickOutsideHandler(event) {
var clickover = $(event.target);
var _opened = $(".navbar-collapse").hasClass("navbar-collapse in");
if (_opened === true && !clickover.hasClass("navbar-toggle")) {
// $("button.navbar-toggle").click();
$(".navbar .navbar-collapse").removeClass("in");
scope.navCollapsed = false;
}
}
}
};
});
И я использовал директиву в обоих элементах nav
. Но это не работает должным образом.
В первый раз может работать нормально. Но если вы щелкнете снаружи, а затем попытаетесь открыть меню, вам нужно будет дважды нажать кнопку. Иногда это тоже не работает.
Как я могу это решить?
Мне нужно закрыть все навигационные и выпадающие меню, когда мы нажимаем снаружи. Если мы щелкнем внутри любой навигации, закроем все, кроме текущего.
Спасибо.