jquery - 单击带有子元素的主选项时下拉菜单出错

标签 jquery html css drop-down-menu

我在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 链接,但我的子菜单立即再次隐藏。 你能帮帮我吗?

最佳答案

您应该尝试向 UL 标签添加类。

你的问题是

 $("ul > li > a").click(function(e)

会卡在一个循环中,阻止子 ul 的点击。

我会尝试为他们提供类 - 第一级、第二级并在您的 jQuery 选择器中使用它们。

 $(".second-level").addClass("hidden");
 $(".first-level > a").click(function(e) {

恕我直言,在原始元素标签上使用此类通用选择器并不好。希望对你有帮助

关于jquery - 单击带有子元素的主选项时下拉菜单出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720348/

相关文章:

php - 提交表单时无法获取 php 中的所有值

html - 当我的宽度设置为 100% 时,为什么我的网站会横向滚动?

javascript - jquery 自动完成焦点元素增加字体大小

javascript - D3 : Lag update of force layout hull on click

javascript - 如何设置 ajax 请求开始到成功之间的最短时间?

javascript - Angular链接功能是否会触发更改事件?

css - 整个列表的线性渐变与每个单词的线性渐变

javascript - 如何固定光标大小?

javascript - CSS 显示内联 block 并用元素填充所有空间

css - Bootstrap 响应式导航栏和填充到容器流体