Невозможно прочитать свойство offsetTop из undefined - PullRequest
0 голосов
/ 29 мая 2020

HTML:

<div class="navbar navbar-expand-md navbar-dark bg-dark mb-4" role="navigation" width="100%">
      <a class="navbar-brand" href="/dgda">DGDA|HOME</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarCollapse">
          <ul class="navbar-nav mr-auto">
              <li class="nav-item active">
                  <a class="nav-link" href="/dgda">Home <span class="sr-only">(current)</span></a>
              </li>
              <li class="nav-item">
                  <a class="nav-link" href="https://www.dgda.gov.bd/index.php/downloads/background">About</a>
              </li>

              <li class="nav-item dropdown">
                  <a class="nav-link dropdown-toggle" id="dropdown1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Pharmacies</a>
                  <ul class="dropdown-menu" aria-labelledby="dropdown1">
                      <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/requests">New Pharmacy Requests</a></li>
                      <li class="dropdown-item dropdown">
                          <a class="dropdown-toggle" id="dropdown1-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">See Pharmacy List</a>
                          <ul class="dropdown-menu" aria-labelledby="dropdown1-1">
                              <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/allopathicRetailPharmacyView">Allopathic Retail Pharmacy</a></li>
                              <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/ayurvedic-retail-pharmacy-view">Ayurvedic Retail Pharmacy</a></li>
                              <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/unani-retail-pharmacy-view">Unani Retail Pharmacy</a></li>
                              <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/herbal-retail-pharmacy-view">Herbal Retail Pharmacy</a></li>
                              <li class="dropdown-item" ><a id="linkDesign" href="/dgda/pharmacies/homeopathic-and-biochemic-retail-pharmacy-view">Homeopathic and Biochemic Retail Pharmacy</a></li>
                              <li class="dropdown-item" ><a id="linkDesign" href="https://www.dgda.gov.bd/index.php/pharmacies/whole-sale-pharmacy-view-2">Model Pharmacy</a></li>

                          </ul>
                      </li>
                  </ul>
              </li>
              <li class="nav-item dropdown">
                  <a class="nav-link dropdown-toggle" id="dropdown2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown2</a>
                  <ul class="dropdown-menu" aria-labelledby="dropdown2">
                      <li class="dropdown-item" href="#"><a>Action 2 A</a></li>
                      <li class="dropdown-item" href="#"><a>Action 2 B</a></li>
                      <li class="dropdown-item" href="#"><a>Action 2 C</a></li>
                      <li class="dropdown-item dropdown">
                          <a class="dropdown-toggle" id="dropdown2-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown2.1</a>
                          <ul class="dropdown-menu" aria-labelledby="dropdown2-1">
                              <li class="dropdown-item" href="#"><a>Action 2.1 A</a></li>
                              <li class="dropdown-item" href="#"><a>Action 2.1 B</a></li>
                              <li class="dropdown-item" href="#"><a>Action 2.1 C</a></li>
                              <li class="dropdown-item dropdown">
                                  <a class="dropdown-toggle" id="dropdown2-1-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown2.1.1</a>
                                  <ul class="dropdown-menu" aria-labelledby="dropdown2-1-1">
                                      <li class="dropdown-item" href="#"><a>Action 2.1.1 A</a></li>
                                      <li class="dropdown-item" href="#"><a>Action 2.1.1 B</a></li>
                                      <li class="dropdown-item" href="#"><a>Action 2.1.1 C</a></li>
                                  </ul>
                              </li>
                              <li class="dropdown-item dropdown">
                                  <a class="dropdown-toggle" id="dropdown2-1-2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown2.1.2</a>
                                  <ul class="dropdown-menu" aria-labelledby="dropdown2-1-2">
                                      <li class="dropdown-item" href="#"><a>Action 2.1.2 A</a></li>
                                      <li class="dropdown-item" href="#"><a>Action 2.1.2 B</a></li>
                                      <li class="dropdown-item" href="#"><a>Action 2.1.2 C</a></li>
                                  </ul>
                              </li>
                          </ul>
                      </li>
                  </ul>
              </li>
          </ul>
          <form class="form-inline mt-2 mt-md-0">
              <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
              <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
          </form>
      </div>
  </div>

JavaScript:

$(document).ready(function () {

        $('.navbar .dropdown-item').on('click', function (e) {
            var $el = $(this).children('.dropdown-toggle');
            var $parent = $el.offsetParent(".dropdown-menu");
            $(this).parent("li").toggleClass('open');

            if (!$parent.parent().hasClass('navbar-nav')) {
                if ($parent.hasClass('show')) {
                    $parent.removeClass('show');
                    $el.next().removeClass('show');
                    $el.next().css({"top": -999, "left": -999});
                } else {
                    $parent.parent().find('.show').removeClass('show');
                    $parent.addClass('show');
                    $el.next().addClass('show');
                    $el.next().css({"top": $el[0].offsetTop, "left": $parent.outerWidth() - 4});
                }
                e.preventDefault();
                e.stopPropagation();
            }
        });

        $('.navbar .dropdown').on('hidden.bs.dropdown', function () {
            $(this).find('li.dropdown').removeClass('show open');
            $(this).find('ul.dropdown-menu').removeClass('show open');
        });

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...