gpt4 book ai didi

jquery - 如何在点击下拉菜单时制作 CSS 下拉菜单

转载 作者:行者123 更新时间:2023-11-28 06:00:02 25 4
gpt4 key购买 nike

如何让下面的 css 下拉菜单只接受点击下拉菜单?例如,现在当鼠标悬停在“请选择”时。第二层出现。我想改成点击“请选择”时,出现第二层。此外,点击事件应适用于第二层菜单。

这是一个 Fiddle

我正在使用 jquery 但不知道该怎么做。

html代码

 <ul class="dropdown">
<li><a href="#">Please select</a>
<ul class="sub_menu">
<li>
<a href="#">Artificial Turf</a>
<ul>
<li><a href="#">Indoor</a></li>
<li><a href="#">Outdoor</a></li>
</ul>
</li>
<li>
<a href="#">Batting Cages</a>
<ul>
<li><a href="#">Indoor</a></li>
<li><a href="#">Outdoor</a></li>
</ul>
</li>
</ul>
</li>
</ul​

CSS代码

/* 
LEVEL ONE
*/
ul.dropdown { position: relative; }
ul.dropdown li { font-weight: bold; float: left; zoom: 1; background: #ccc; }
ul.dropdown a:hover { color: #000; }
ul.dropdown a:active { color: #ffa500; }
ul.dropdown li a { display: block; padding: 4px 8px; border-right: 1px solid #333;
color: #222; }
ul.dropdown li:last-child a { border-right: none; } /* Doesn't work in IE */
ul.dropdown li.hover,
ul.dropdown li:hover { background: #F3D673; color: black; position: relative; }
ul.dropdown li.hover a { color: black; }


/*
LEVEL TWO
*/
ul.dropdown ul { width: 220px; visibility: hidden; position: absolute; top: 100%; left: 0; }
ul.dropdown ul li { font-weight: normal; background: #f6f6f6; color: #000;
border-bottom: 1px solid #ccc; float: none; }

/* IE 6 & 7 Needs Inline Block */
ul.dropdown ul li a { border-right: none; width: 100%; display: inline-block; }

/*
LEVEL THREE
*/
ul.dropdown ul ul { left: 100%; top: 0; }
ul.dropdown li:hover > ul { visibility: visible; }​

最佳答案

正如我在您的 css 中注意到的那样,您使用可见性来显示或隐藏 ul-s,因此您应该使用此代码

   $(".dropdown li").click(function() { 
$(this).parent().children("li").not(this).children("ul").css({ "visibility":"hidden" });
$(this).children("ul").css({ "visibility":"visible" });
})​

你还应该从你的 css 中删除这一行

ul.dropdown li:hover > ul { 可见性:可见; }

关闭标签使用此代码

$('html').click(function() {
$(".dropdown ul").css({ "visibility":"hidden" });
});

$('.dropdown ').click(function(event){
event.stopPropagation();
});

最后一部分取自这个 stackoverflow 问题 How to detect a click outside an element?

还可以修复悬停时的位置变化,将 css 中的第 2 行更改为此

ul.dropdown li  { font-weight: bold; float: left; zoom: 1; background: #ccc; position: relative; }

关于jquery - 如何在点击下拉菜单时制作 CSS 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36813285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com