如何隐藏Twitter Bootstrap下拉菜单

这是越来越讨厌 – 当我点击引导下拉菜单中的项目,下拉不会closures。 当您点击下拉项目时,我已经设置打开一个Facebox灯箱,但是存在问题。

在这里输入图像说明


我曾经尝试过

当项目被点击时,我尝试这样做:

$('.dropdown.open').removeClass('open'); $('.dropdown-menu').hide(); 

这隐藏了它,但由于某种原因,它不会再次打开。

正如你所看到的,我真的需要closures下拉菜单,因为它保持打开时看起来很糟糕(主要是因为下拉菜单的z-index高于Facebox模式框叠加层。


为什么我不使用Bootstrap的内置模式框

如果你想知道为什么我不使用内置在Bootstrap中的漂亮的模式框,那是因为:

  1. 它没有办法通过AJAX加载内容。
  2. 你必须每次inputHTML的模态; 使用Facebox你可以做一个简单的: $.facebox({ajax:'/assets/ajax/dialogs/dialog?type=block-user&id=1234567'});
  3. 它使用CSS3animation进行animation处理(看起来非常漂亮),但在非CSS3浏览器中显示,看起来不太好; Facebox使用JavaScript淡入,所以它可以在所有浏览器中使用。

尝试这个:

 $('.dropdown.open .dropdown-toggle').dropdown('toggle'); 

这也可能对你有用:

 $('[data-toggle="dropdown"]').parent().removeClass('open'); 

从这里尝试了大部分的select,但没有人真的为我工作。 ( $('.dropdown.open').removeClass('open');确实隐藏了它,但是如果你在点击其他任何东西之前把它隐藏起来,它会再次出现。

所以我努力做一个$("body").trigger("click")

你只需要做$('.dropdown.open').removeClass('open'); 删除隐藏下拉菜单的第二行。

这可以通过将属性data-toggle =“dropdown”添加到锚标记中,而无需编写JavaScript代码来完成,如下所示:

 <script src="jquery-1.11.0.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true"> Dropdown <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"><a role="menuitem" tabindex="-1" href="#" data-toggle="dropdown">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#" data-toggle="dropdown">Another action</a></li> </ul> </div> 
 $('.open').removeClass('open'); 

是为我做的。

所选的答案不适合我,但我想这是因为Bootstrap的新版本。 我结束了写这个:

 $('.btn-navbar').addClass('collapsed'); $('.nav-collapse').removeClass('in').css('height', '0'); 

希望对未来的其他人有帮助。

这对我来说是有效的:

 $(this).closest(".dropdown").find(".dropdown-toggle").dropdown("toggle"); 

为什么使用我的方法,因为如果用户离开div,这个方法允许用户在子菜单消失之前有一定的延迟。 这就像使用超级插件。

1)首先下载hover意图的JavaScript

链接在这里:hover意图的JavaScript

2)这是我的代码执行

 $(document).ready(function(){ var config = { over: showBootrapSubmenu, timeout: 500, out: hideBootrapSubmenu }; function showBootrapSubmenu(){ $(this).addClass('open'); } function hideBootrapSubmenu(){ $(this).removeClass('open'); } //Hover intent for Submenus $(".dropdown").hoverIntent(config); }); 

试着用Bootstrap Modal打开HTML,我用这个代码:

 $(function() { $('a[data-toggle=modal]').click(function(e) { e.preventDefault(); var page = $(e.target).attr('href'); var url = page.replace('#',''); $(page).on('show', function () { $.ajax({ url: "/path_to/"+url+".php/html/...", cache: false, success: function(obj){ $(page).css('z-index', '1999'); $(page).html(obj); } }); }) }); }); 

链接是这样的:

 <a href="#my_page" data-toggle="modal">PAGE</a> 
 $('.dropdown.open').removeClass('open'); 

阅读文档并使用JavaScript,可以使用切换方法完成:

 $('.button-class').on('click',function(e) { e.preventDefault(); $('.dropdown-class').dropdown('toggle'); } 

你可以阅读: http : //getbootstrap.com/javascript/#dropdowns-methods

尝试这个!

 .removeClass("open").trigger("hide.bs.dropdown").trigger("hidden.bs.dropdown"); 

要么

 $(clicked_element).trigger("click"); 

它总是为我工作。

这里是我如何closuresbutton下拉并切换button的解决scheme:

 $(".btn-group.open", this) .trigger("click") .children("a.dropdown-toggle") .trigger("blur") 

其中“this”是button组的全局容器。

这工作对我来说,我有一个导航栏和几个下拉菜单。

 $(document).ready(function () { $('a.dropdown-toggle').each(function(){ $(this).on("click", function () { $('li.dropdown').each(function () { $(this).removeClass('open'); }); }); }); }); 

最简单的方法是:添加一个隐藏标签:

 <label class="hide_dropdown" display='hide'></label> 

那么每次你想隐藏下拉菜单,你都可以打电话给:

 $(".hide_dropdown").trigger('click'); 

不知道这是否会帮助任何人(也许这是我的情况,而不是这个问题),但对我来说,这工作:

 $('.input-group.open').removeClass('open'); 

点击后:

 // Hide mobile menu $('.in,.open').removeClass('in open'); // Hide dropdown $('.dropdown-menu').css('display','none'); setTimeout(function(){ $('.dropdown-menu').css('display',''); },100); 

在定位标记上使用class =“dropdown-toggle”,然后当你点击定位标记时,它将closures引导下拉菜单。

嘿这个简单的jQuery技巧应该有所帮助。

 $(".dropdown li a").click(function(){ $(".dropdown").removeClass("open"); }); 

简单的方法:

  $('.navbar-collapse a').click(function(){ $('.navbar-toggle').trigger('click') }) 

您可以在您当前的事件处理程序中使用此代码

 $('.in,.open').removeClass('in open'); 

在我的情况下,我使用Ajax调用完成

 jQuery(document).on('click', ".woocommerce-mini-cart__buttons .wc-forward.checkout", function() { var _this = jQuery(this); ajax_call(_this.attr("data-ajax-href"), "checkout-detail"); $('.in,.open').removeClass('in open'); return false; });