我在html中有以下代码
<ul>
<li>
<a href="url1">URL1</a>
<ul>
<li><a href="url11">URL1_1</a></li>
<li><a href="url12">URL1_2</a></li>
....
CSS代码:
.hidden {
display: none;
}
和JS代码:
$(function() {
$("ul > li > ul").addClass("hidden");
$("ul > li > a").click(function(e) {
var li = $(this).parent();
e.preventDefault();
li.find("ul").first().slideToggle();
});
});
如果使用e.preventDefault();
我的子菜单已显示,但我的ul>li> a
未将我的页面重定向到href链接。
然后......如果我删除e.preventDefault();
然后显示我的子菜单,我的页面将被重定向到一个href链接,但我的子菜单会立即被隐藏。
你能帮帮我吗?
答案 0 :(得分:0)
您应该尝试将类添加到UL标记。
你的问题在于
$("ul > li > a").click(function(e)
将陷入循环并阻止来自孩子ul的点击。
我会尝试给它们类 - 第一级,第二级,并在jQuery选择器中使用它。
$(".second-level").addClass("hidden");
$(".first-level > a").click(function(e) {
在原始元素标签IMHO上使用这样的通用选择器并不好。希望这可以帮助你