Закрыть / свернуть меню аккордеона при нажатии за пределами меню

У меня довольно сложное аккордеонное меню, в котором мне нужно сделать две вещи. Когда пользователь щелкает по меню, я хочу, чтобы оно: 1. закрывало / закрывало все вкладки И 2. закрывало / закрывало все элементы подменю.

Я не знаю никакого программирования, кроме html и css, поэтому у меня огромное количество проблем, чтобы заставить это меню аккордеона работать.

Я могу заставить его рушиться, когда я нажимаю на другие вкладки, но я не могу заставить присоску закрыться, когда я щелкаю за пределами меню (что я хочу, чтобы это делало тоже).

Я тоже новенький здесь, я понятия не имею, как это сделать.

У меня есть аккордеон с заголовком / кнопкой, subITEMS, и у некоторых тоже есть subMENU.

Вот пример того, что я получил:

        <!-- Accordion menu START -->
        <div id="accordion" class="panel-group" aria-multiselectable="true">
          <div class="list-group panel">

            <!-- Item 1 -->
            <a href="#morocco" role="button"  class="panel-heading list-group-item strong" data-toggle="collapse" data-parent="#accordion">Morocco <i class="more-less glyphicon glyphicon-triangle-right"></i></a>
            <div class="collapse" id="morocco">
              <ul>
                <li>
                  <a class="list-group-item strong" href="#">Homepage</a>
                  <ul>
                    <li>
                      <a class="list-group-item strong" href="="#">">Casablanca</a>
                    </li>
                  </ul>
                </li>
              </ul>
            </div>
            <!-- END Item 1  -->

            <!-- Item 2  basically the same as item 1  -->

            <!-- Item 3   -->
            <a href="#france" role="button" class="panel-heading list-group-item strong" data-toggle="collapse" data-parent="#accordion">France <i class="more-less glyphicon glyphicon-triangle-right"></i></a>

            <div class="collapse" id="france">
              <!-- Alsace -->
              <a class="list-group-item" href="="#"">Alsace</a>

              <!-- burgundy -->
              <a href="#burgundy" role="button" class="panel-heading list-group-item strong" data-toggle="collapse" data-parent="#burgundy">Burgundy <i class="more-less glyphicon glyphicon-menu-right"></i></a>

              <div class="collapse list-group-submenu list-group-submenu-1" id="burgundy">
                <ul>
                  <li>
                    <a href="="#"" class="list-group-item" data-parent="#burgundySubMenu">Homepage</a>
                    <ul>
                      <li>
                        <a class="list-group-item strong" href="#" target="_self">Dijon</a>
                      </li>
                </ul>
              </div>
            </div>
            <!-- END Item 3 -->
          </div>
        </div>
        <!-- Accordion END -->

Я использовал этот скрипт, чтобы закрыть подменю

  $(document).ready(function() {
    $('#france').on('hidden.bs.collapse', function() {
      console.log('triggered');
      $('#burgundy').collapse('hide');
    });
  });

но мне нужно, чтобы все меню аккордеона закрывалось / закрывалось, когда пользователь больше не использует меню... Я ненавижу меню, которые остаются открытыми, когда они не используются.

Любая помощь будет оооочень признательна... Я в своем уме!

И я прошу прощения за мой неаккуратный код... Я могу делать CSS и HTML, я не говорил, что у меня это хорошо получается!:)

Я забыл упомянуть... этот код ПОЧТИ работал...

<script>
$("html").click(function(event) {
    if ($(event.target).closest('#accordion, #burgundy').length === 0) {
          jQuery('.collapse').collapse('hide');
    }
});

</script>

это закрыло бы меню аккордеона, но оставило бы открытые вкладки, нажимая ВНУТРИ меню. Мне нужно, чтобы закрыть вкладки при нажатии на другую вкладку И закрыть все меню при нажатии за пределами меню.

0 ответов

Другие вопросы по тегам