Выпадающее меню, у которого есть выпадающее меню (Bootstrap-navbar) для планшета

Я пытался сделать навигационную панель с выпадающим меню внутри, но в этом мне не нужно выпадающее меню внутри. Но когда я нажимаю на него, меню закрывается. Я не хочу блокировать эту функцию, которая, когда я нажимаю на нее, исчезает, потому что я думаю, что из-за этого она не может работать. Я видел кое-что о stopPropagation на https://github.com/twitter/bootstrap/pull/3383 но я не знаю, где я могу объявить об этом, и это не формула.

РЕДАКТИРОВАТЬ: я не могу использовать li class="dropdown-submenu", потому что, когда вы находитесь на мобильном телефоне или планшете, меню закрывается, когда вы касаетесь ссылки в нем.

Есть мой код:

<div class="bs-docs-example">
    <div class="navbar">
      <div class="navbar-inner">
        <div class="container">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-responsive-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>
          <a class="brand" href="/app/alink">Title</a>
          <div class="nav-collapse collapse navbar-responsive-collapse">
                <ul class="nav">
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Article A<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li><a href="/app/alink">Title Article 1-A</a></li>
                            <li><a href="/app/alink">Title Article 2-A</a></li>
                        </ul>
                    </li>
                    <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">More ...<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Article B<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="/app/alink">article 1-B</a></li>
                                </ul>
                            </li>
                            <li><a href="#" class="dropdown-toggle" data-toggle="dropdown">Article C<b class="caret"></b></a></li>
                            <li><a href="#" class="dropdown-toggle" data-toggle="dropdown">Article D<b class="caret"></b></a></li>
                        </ul>
                    </li> 
                </ul>
            </div>
        </div>
    </div>
</div>



person toshiro92    schedule 26.07.2013    source источник


Ответы (3)


Я нашел другое решение. Я добавил это после моего кода:

<script type="text/javascript"> 
$('.dropdown-menu').click(function(event){
    event.stopPropagation();
});
</script>

Выпадающий список не может работать с этим решением, поэтому я использовал «раскрывающееся подменю», чтобы исправить это (спасибо @Schmalzy за это). Поэтому, когда я касаюсь ссылки, открывается подменю. подменю не может нормально работать на планшете без приведенного выше кода.

person toshiro92    schedule 31.07.2013

Вы можете использовать адаптивное выпадающее меню bootstrap3.

<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="./" class="navbar-brand">Bootstrap</a>
    </div>
    <nav class="navbar-collapse bs-navbar-collapse collapse" role="navigation" style="height: 1px;">
      <ul class="nav navbar-nav">
        <li>
          <a href="./getting-started">Getting started</a>
        </li>
        <li>
          <a href="./css">CSS</a>
        </li>
        <li>
          <a href="./components">Components</a>
        </li>
        <li>
          <a href="./javascript">JavaScript</a>
        </li>
        <li>
          <a href="./customize">Customize</a>
        </li>
      </ul>
    </nav>
  </div>
</header>
person Prem Kumar Maurya    schedule 06.10.2013

Проблема в Bootstrap V2.3.2, как вы можете видеть по этой ссылке http://getbootstrap.com/2.3.2/examples/carousel.html

Вы можете обновить загрузчик до версии 3 или использовать этот стиль для решения проблемы.

/*Fix navbar dropdown collapsed on mobile devices*/
.dropdown-backdrop {
    position: static;
}

Благодаря http://yogarelax.harpoonmysite.com/

person Mohammad Karimi    schedule 21.02.2015