1

Мне нужна помощь в достижении той же навигации, что и ссылка ниже.Keep-bootstrap-3-dropdown-open-when-clicked

У этого есть мой код наряду с требованием клиентов. И я использую Bootstrap 3

Bootstrap Dropdowns - dropdown.js 

jsfiddle Link

Пожалуйста, помогите.

ответ

3

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; 
    } 
}); 
+0

Спасибо за помощь , Я попробовал и обновил jsfiddle. Проблема в том, что он делает все активным. Можете ли вы мне помочь с этим? – user3121847

+0

Посмотрите обновленное техническое решение! –

+0

Исправлено: Не указано ReferenceError: e не определено. Просто измените "функцию doNothing (e) {" –

0

Не уверен, что если его правильно, но я сделал

$(function(){ 
    $('.nav').find('li.dropdown.active').addClass('open'); 
    $(".dropdown").on("hide.bs.dropdown",function(e) { 
     e.preventDefault(); 
     return false; 
    }); 
    $('.navbar-main li').on('click', function(){ 
    var me = $(this); 
    $('.navbar-main li').removeClass('open'); 
    $(this).addClass('open'); 
    }); 
}); 

и его работает отлично :)