[英]how to get CSS drop down menus to stay open even when clicked outside the menu?
我有一个客户的要求来处理他们的下拉菜单系统。 我将菜单用作下拉菜单,但他们要求下拉菜单不在悬停时发生,但必须“单击”以显示它们,甚至包括所有疯狂的子菜单。
此外,即使顶层导航项目已关闭,他们也希望菜单在其显示状态下保持打开(固定)状态。 我知道这是奇怪的行为,但这就是他们想要的。 应当注意,任何时候都只能打开一个最上层的nab菜单项。 他们正在使用iframe来显示href,因此我们现在不需要cookie来保存菜单的状态,但将来会很好;)我不是javascript人,这是从代码中整理来的我聚集了,但我很茫然。 我确实设法一次更改了一些JS以通过单击来处理打开菜单的操作,但是一旦鼠标移出UL,它就会消失。
到目前为止,我已经在这里发布了我的代码: http : //jsfiddle.net/9dJ9T/8/
任何人都无法使菜单仅在单击时显示,并保持打开和“固定”状态,直到随后全部“取消固定”为止。 理想情况下,我认为jquery .toggle方法会更好,但此菜单系统中包含如此众多的UL和LI,我无法想象为每个菜单创建功能! 有没有一种方法可以抽象出这样的函数以简化代码,而不会以大量的函数结尾? 我很想向JS大师学习!!
您不需要所有这些。 重新制作。 您可以用10行解决。
添加类似onclick =“ displaySubmenu('someIdOrSomethingOrWhateverYouWant');”的内容。 在每个标签上。
js一定是这样的
function displaySubmenu(el)
{
// Hide all elements. (Easy to do)
// Display the needed one. (document.getElementById('yourSetedId').style.display ='block');
}
其余的是css和html。
如果您想保持淡入淡出,只需保留该功能并将其设置在您的ID上即可。
简单的部分是打开正确的一个,然后关闭另一个
$(".dropTab").on("click", function(){
$(".dropTab").hide();
$(this).show();
})
更为复杂的部分是,当用户在任何菜单区域之外单击时(如在主要内容上),应关闭选项卡。
$("body").on("click",function(e) {
if ($(e.target).closest(".headerBar").length) {
return;
}
$(".dropTab").hide();
});
尝试这个
<div class="btn-group" id="myDropdown"><a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Menu<span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Choice1</a></li>
<li><a href="#">Choice2</a></li>
<li><a href="#">Choice3</a></li>
<li class="divider"></li>
<li><a href="#">Choice..</a></li></ul></div>
和js
$('#myDropdown').on('hide.bs.dropdown', function () {
return false;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.