求解决bootstrap 4 导航栏鼠标经悬浮菜单





Navbar

  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
        <div class="dropdown-menu" aria-labelledby="dropdown01">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
    <form class="form-inline my-2 my-md-0">
      <input class="form-control mr-sm-2" type="text" placeholder="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>

4.0版本和3.0版本有很大的区别,求帮忙解决4.0版本鼠标移动上去后下拉菜单自动展开,点击展开变成触动展开。谢谢

用js的onmouseover鼠标移入触发函数和onmouseout鼠标移除触发函数来控制下拉列表

function mouseOver(){ $(".dropdown-menu").addClass("navbar-collapse collapse"); } function mouseOut(){ $(".dropdown-menu").removeClass("navbar-collapse collapse"); }
  • 上面忘记转码了,添加两个函数 onmouseover 和onmouseout测试过了,没问题 function mouseOver(){
  • $(".dropdown-menu").addClass("navbar-collapse collapse");
  • }
  • function mouseOut(){
  • $(".dropdown-menu").removeClass("navbar-collapse collapse");
  • }
  • <div class="collapse navbar-collapse" id="navbarsExampleDefault">
  • <ul class="navbar-nav mr-auto">
  • <li class="nav-item active">
  • <a class="nav-link" href="#">Home (current)
  • </li>
  • <li class="nav-item">
  • <a class="nav-link" href="#">Link
  • </li>
  • <li class="nav-item">
  • <a class="nav-link disabled" href="#">Disabled
  • </li>
  • <li class="nav-item dropdown">
  • <a class="nav-link dropdown-toggle" id="dropdown01" data-toggle="dropdown" onmouseover="mouseOver()" onmouseout="mouseOut()" aria-haspopup="true" aria-expanded="false">Dropdown
  • <div style="cursor:pointer;" class="dropdown-menu" aria-labelledby="dropdown01">
  • <a class="dropdown-item" href="#">Action
  • <a class="dropdown-item" href="#">Another action
  • <a class="dropdown-item" href="#">Something else here
  • </div>
  • </li>
  • </ul>
  • <form class="form-inline my-2 my-md-0">
  • <input class="form-control mr-sm-2" type="text" placeholder="Search">
  • <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search
  • </form>
  • </div>

是4.0版本,不是3版本

  • 增加延迟效果可以去除闪烁,把上述两个js函数给修改了一下,你替换掉
  • function mouseOver(){
  • setTimeout('$(".dropdown-menu").addClass("navbar-collapse collapse");',200);
  • }
  • function mouseOut(){
  • if($(".dropdown-menu").hasClass("navbar-collapse collapse")){
  • setTimeout('$(".dropdown-menu").removeClass("navbar-collapse collapse");',300);
  • }
  • }