javascript - 单击链接后关闭下拉菜单(Bootstrap)

标签 javascript jquery html css twitter-bootstrap-3

我希望 DropMenu(在移动查询中)在单击菜单中的链接后关闭,并且图标保持在他的位置而不是移动到 li 列表下方。

这是我的 HTML 代码:

<nav class="navbar navbar-inverse navbar-fixed-top">
<a id="icono" href="http://www.facebook.com/clenslimpieza" target="_blank">
  <i class="fa facebook fa-facebook-square fa-3x" aria-hidden="true"></i>
</a>
<ul class="nav navbar-nav" id="dropdownClick">
  <li><a href="#inicio">Inicio</a></li>
  <li><a href="#quees">¿Qué es?</a></li>
  <li><a href="#porque">¿Por qué?</a></li>
  <li><a href="#servicios">Servicios</a></li>
  <li><a href="#testimonios">Testimonios</a></li>
  <li><a href="#equipo">Equipo</a></li>
  <li><a href="#contactenos">Contactenos</a></li>
  <li class="dropdownIcon"><a href="javascript:void(0);" 
  onclick="dropdownMenu()"><i class="fa fa-bars fa-2x" aria-hidden="true">
  </i></a></li>
</ul>

这是脚本代码:

<script>
function dropdownMenu() {
  var x = document.getElementById("dropdownClick");
  if (x.className === "nav navbar-nav") {
    x.className += "responsive";
  } else {
    x.className = "nav navbar-nav";
  }
};
</script>

这是我的 CSS 代码:

@media only screen and (max-width: 767px ) {
#equipo {
 height: auto;
}

.navbar-nav li:not(:nth-child(8)) {
 display: none;
} 

ul.nav li.dropdownIcon {
  float: right;
  display: block;
}

ul.nav.responsive li.dropdownIcon {
  position: absolute;
  top: 0;
  right: 0;
}

ul.nav.responsive {
  position: relative;
}

ul.nav.responsive li {
  display: inline;
  float: none;
}

ul.nav.responsive li a {
  display: block;
  text-align: left;
}
}

最佳答案

这只是一种选择!

function dropdownMenu() {
var x = document.getElementById("dropdownClick");
if (x.className === "nav navbar-nav") {
  x.className += "responsive";
} else {
  x.className = "nav navbar-nav";
}


 }
 $(".dropdown-menu a").click(function() {
  $(this).closest(".dropdown-menu").prev().dropdown("toggle");
});
 $('#dropdownClick li a').click(function(){
 $(this).closest('nav.navbar').find('.navbar-navresponsive').addClass('nav navbar-nav').toggleClass('navbar-navresponsive');
})
@media only screen and (max-width: 767px ) {
#equipo {
 height: auto;
}

.navbar-nav li:not(:nth-child(8)) {
 display: none;
} 

ul.nav li.dropdownIcon {
  float: right;
  display: block;
}

ul.nav.responsive li.dropdownIcon {
  position: absolute;
  top: 0;
  right: 0;
}

ul.nav.responsive {
  position: relative;
}

ul.nav.responsive li {
  display: inline;
  float: none;
}

ul.nav.responsive li a {
  display: block;
  text-align: left;
}
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<nav class="navbar navbar-inverse navbar-fixed-top">
<a id="icono" href="http://www.facebook.com/clenslimpieza" target="_blank">
  <i class="fa facebook fa-facebook-square fa-3x" aria-hidden="true"></i>
</a>
<ul class="pull-right">
<li class="dropdownIcon"><a href="javascript:void(0);" 
  onclick="dropdownMenu()"><i class="fa fa-bars fa-2x" aria-hidden="true">
  </i></a></li></ul>
<ul class="nav navbar-nav" id="dropdownClick">
  <li><a href="#inicio">Inicio</a></li>
  <li><a href="#quees">¿Qué es?</a></li>
  <li><a href="#porque">¿Por qué?</a></li>
  <li><a href="#servicios">Servicios</a></li>
  <li><a href="#testimonios">Testimonios</a></li>
  <li><a href="#equipo">Equipo</a></li>
  <li><a href="#contactenos">Contactenos</a></li>
  
</ul>
</nav>

关于javascript - 单击链接后关闭下拉菜单(Bootstrap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44205048/

相关文章:

javascript - 试图从 javascript map 结果中隐藏 "undefined"

javascript - JQuery 不执行 .blur() 中定义的函数

jquery - 从数据库中获取grails jquery自动更新div

facebook - 为Facebook时间轴(如Spotify)创建播放按钮?

javascript - 使用 PHP MySQL 将选项标记值重置为数据库中的 1

javascript - 空字符串是有效的 JSON 键吗?

javascript - 按键事件在 Internet Explorer 中不起作用

java - 奇怪的解析问题

php - 自动完成文本框下拉列表未出现在文本框下方

javascript - 内容不显示时如何隐藏div