jQuery错误地导致悬停

jQuery mistakenly causes hover

本文关键字:悬停 错误 jQuery      更新时间:2023-09-26

我想用jQuery显示隐藏的导航。这是我的代码:

$(document).ready(function() {
  var x = 0;
  $(".navbar-fixed-top").mouseover(function() {
    console.log("555");
    if (x != 1) {
      $(".header-triangle").fadeToggle();
      $(".topbar-menu").slideToggle();
    }
    x = 0;
  });
});
.topbar-menu {
  background-color: rgba(84, 84, 84, 0.4);
  height: 40px;
  line-height: 40px;
  direction: rtl;
  display: none;
}
#fix-header {
  background-color: rgba(84, 84, 84, 0.4);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hidden-xs">
  <nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid" id="fix-header">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#">
          <img src="img/150_50.png" alt="image">
        </a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-left">
          <li class=" hidden-xs ">
            <a id="navbar-menu" href="#">
              <img id="menuHeader" src="img/hamburgerMenu.png">
            </a>
          </li>
          <li class="visible-xs"><a href="#">example </a>
          </li>
        </ul>
        <ul class="nav navbar-nav navbar-right">
          <li>
            <div class="searchbox-navigation">
              <form class="navbar-form" role="search">
                <div class="input-group">
                  <div class="input-group-btn">
                    <button class="btn btn-default " type="submit"><i class="glyphicon glyphicon-search"></i>
                    </button>
                  </div>
                  <input type="text" class="form-control" style="direction: rtl;" placeholder="search" name="q">
                </div>
              </form>
            </div>
          </li>
        </ul>
      </div>
      <!--/.nav-collapse -->
    </div>
    <!--/.container-fluid -->
    <div class="topbar-menu container-fluid hidden-xs">
    </div>
  </nav>
</div>
<script src="js/headerEvent.js"></script>

当我离开该部分的鼠标时,它会记录另一个"555"。 为什么会这样?我只想记录一次。

这里有一个代码笔链接:http://codepen.io/anon/pen/RaGLWd您可以将其更改为mouseenter或mouseleave以仅触发一次:

$(".navbar-fixed-top").mouseenter(function() {
    console.log("555");
    if (x != 1) {
      $(".header-triangle").fadeToggle();
      $(".topbar-menu").slideToggle();
    }