javascript - bind another element in a mouseleave function -


i created dropdown menu , below snippet. problem whenever tried go dropdown part (the 1 has class of dropdown_menu) menu after click link triggered it, slideup supposedly not inside .has_dp element, ideas? im wondering if best solution bind .dropdown_menu element mouseleave event of .has_dp .dropdown_menu slideup if cursor not on over .has_dp , .dropdown_menu, possible?

$(document).ready(function(){      //main declarations      $(".thehide").hide();     //dropdown menu      $(".has_dp").click(function(){         $(".dropdown_menu", this).slidedown();       }).mouseout(function(){         $(".dropdown_menu", this).slideup();       });  });
/* navigation */  #topnav{    -webkit-box-shadow: none;    -moz-box-shadow: none;    box-shadow: none;      }  #topnav li{      float: left;      list-style: none;  }  #topnav li a{      display: block;      padding: 5px 8px;      color: red;      text-transform: uppercase;  }  #topnav li span{      float: left;      display: block;  }  #topnav li span:first-child{      margin-right: 3px;  }  #topnav li span:last-child{      padding-top: 2px;  }  #topnav li a.active_menu, #topnav li a:active, #topnav li a:hover{      color: blue;  }  /* dropdown */  .dropdown_menu{      z-index: 999;      position: absolute;      background: #263238;      padding: 10px;      margin-top: 15px;  }  .dropdown_menu li{      clear: both;      float: none;  }  .dropdown_menu a{      clear: both;      float: none;      display: block;      padding: 5px 8px;  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/js/materialize.min.js"></script>  <link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/css/materialize.min.css" rel="stylesheet"/>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>      <ul class="nav extend clear" id="topnav">                          <li><a href="index.html" title="home" class="active_menu">home</a></li>                          <li class="has_dp">                              <a href="#" title="company" class="extend clear"><span>company</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">company dropdown menu 1</a></li>                                  <li><a href="#">company dropdown menu 2</a></li>                                  <li><a href="#">company dropdown menu 3</a></li>                                  <li><a href="#">company dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="hr"><span>hr</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">hr dropdown menu 1</a></li>                                  <li><a href="#">hr dropdown menu 2</a></li>                                  <li><a href="#">hr dropdown menu 3</a></li>                                  <li><a href="#">hr dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">assets</a></li>                          <li><a href="index.html" title="#">employees</a></li>                          <li class="has_dp">                              <a href="#" title="expenses"><span>expenses</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">expenses dropdown menu 1</a></li>                                  <li><a href="#">expenses dropdown menu 2</a></li>                                  <li><a href="#">expenses dropdown menu 3</a></li>                                  <li><a href="#">expenses dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="hr"><span>performance</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">performance dropdown menu 1</a></li>                                  <li><a href="#">perfomance dropdown menu 2</a></li>                                  <li><a href="#">performance dropdown menu 3</a></li>                                  <li><a href="#">performance dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="recruitment"><span>recruitment</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">recruitment dropdown menu 1</a></li>                                  <li><a href="#">recruitment dropdown menu 2</a></li>                                  <li><a href="#">recruitment dropdown menu 3</a></li>                                  <li><a href="#">recruitment dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">reporting</a></li>                          <li class="has_dp">                              <a href="#" title="self service"><span>self service</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">self service dropdown menu 1</a></li>                                  <li><a href="#">self service dropdown menu 2</a></li>                                  <li><a href="#">self service dropdown menu 3</a></li>                                  <li><a href="#">self service dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">timesheets</a></li>                          <li><a href="index.html" title="#">timeoff</a></li>                          <li class="has_dp">                              <a href="#" title="training"><span>training</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">training dropdown menu 1</a></li>                                  <li><a href="#">training dropdown menu 2</a></li>                                  <li><a href="#">training dropdown menu 3</a></li>                                  <li><a href="#">training dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="more"><span>more</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">more dropdown menu 1</a></li>                                  <li><a href="#">more dropdown menu 2</a></li>                                  <li><a href="#">more dropdown menu 3</a></li>                                  <li><a href="#">more dropdown menu 4</a></li>                              </ul>                          </li>                      </ul>

the problem nature of mouseout event bubbled.

you need use mouseleave instead of mouseout

$(document).ready(function() {    //main declarations    $(".thehide").hide();    //dropdown menu    $(".has_dp").click(function() {      $(".dropdown_menu", this).slidedown();    }).mouseleave(function() {      $(".dropdown_menu", this).slideup();    });  });
/* navigation */    #topnav {    -webkit-box-shadow: none;    -moz-box-shadow: none;    box-shadow: none;  }  #topnav li {    float: left;    list-style: none;  }  #topnav li {    display: block;    padding: 5px 8px;    color: red;    text-transform: uppercase;  }  #topnav li span {    float: left;    display: block;  }  #topnav li span:first-child {    margin-right: 3px;  }  #topnav li span:last-child {    padding-top: 2px;  }  #topnav li a.active_menu,  #topnav li a:active,  #topnav li a:hover {    color: blue;  }  /* dropdown */    .dropdown_menu {    z-index: 999;    position: absolute;    background: #263238;    padding: 10px;    margin-top: 15px;  }  .dropdown_menu li {    clear: both;    float: none;  }  .dropdown_menu {    clear: both;    float: none;    display: block;    padding: 5px 8px;  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/js/materialize.min.js"></script>  <link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/css/materialize.min.css" rel="stylesheet"/>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>      <ul class="nav extend clear" id="topnav">                          <li><a href="index.html" title="home" class="active_menu">home</a></li>                          <li class="has_dp">                              <a href="#" title="company" class="extend clear"><span>company</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">company dropdown menu 1</a></li>                                  <li><a href="#">company dropdown menu 2</a></li>                                  <li><a href="#">company dropdown menu 3</a></li>                                  <li><a href="#">company dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="hr"><span>hr</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">hr dropdown menu 1</a></li>                                  <li><a href="#">hr dropdown menu 2</a></li>                                  <li><a href="#">hr dropdown menu 3</a></li>                                  <li><a href="#">hr dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">assets</a></li>                          <li><a href="index.html" title="#">employees</a></li>                          <li class="has_dp">                              <a href="#" title="expenses"><span>expenses</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">expenses dropdown menu 1</a></li>                                  <li><a href="#">expenses dropdown menu 2</a></li>                                  <li><a href="#">expenses dropdown menu 3</a></li>                                  <li><a href="#">expenses dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="hr"><span>performance</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">performance dropdown menu 1</a></li>                                  <li><a href="#">perfomance dropdown menu 2</a></li>                                  <li><a href="#">performance dropdown menu 3</a></li>                                  <li><a href="#">performance dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="recruitment"><span>recruitment</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">recruitment dropdown menu 1</a></li>                                  <li><a href="#">recruitment dropdown menu 2</a></li>                                  <li><a href="#">recruitment dropdown menu 3</a></li>                                  <li><a href="#">recruitment dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">reporting</a></li>                          <li class="has_dp">                              <a href="#" title="self service"><span>self service</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">self service dropdown menu 1</a></li>                                  <li><a href="#">self service dropdown menu 2</a></li>                                  <li><a href="#">self service dropdown menu 3</a></li>                                  <li><a href="#">self service dropdown menu 4</a></li>                              </ul>                          </li>                          <li><a href="index.html" title="#">timesheets</a></li>                          <li><a href="index.html" title="#">timeoff</a></li>                          <li class="has_dp">                              <a href="#" title="training"><span>training</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">training dropdown menu 1</a></li>                                  <li><a href="#">training dropdown menu 2</a></li>                                  <li><a href="#">training dropdown menu 3</a></li>                                  <li><a href="#">training dropdown menu 4</a></li>                              </ul>                          </li>                          <li class="has_dp">                              <a href="#" title="more"><span>more</span><span class="mdi-navigation-arrow-drop-down"></span></a>                              <ul class="dropdown_menu extend clear thehide">                                  <li><a href="#">more dropdown menu 1</a></li>                                  <li><a href="#">more dropdown menu 2</a></li>                                  <li><a href="#">more dropdown menu 3</a></li>                                  <li><a href="#">more dropdown menu 4</a></li>                              </ul>                          </li>                      </ul>


Comments