javascript - JQuery点击功能没有触发

标签 javascript jquery html css menu

我遇到的问题是我构建了这个响应式导航。我只希望它在单击汉堡包图标时下拉,但如果我尝试定位它,它将不起作用。它仅在我定位它嵌套的整个导航栏时才有效。

这是本地 jsFiddle 的链接 here

HTML代码

<div class="toggleMenu">
  <button type="button" class="navbar-toggle" id="toggle-btn"></button>
</div>

<nav class="level-nav hidden-md">
  <ul>
    <li><a href="#">About Me</a></li>
    <li><a href="#">Pulses</a></li>
    <li><a href="#">Kudos</a></li>
    <li><a href="#">Blogs</a></li>
    <li>
      <a href="#">Resources <b class="caret"></b></a>
      <div class="level-inner">
        <span class="split"></span>
        <ul>
          <li><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
        </ul>
      </div>
    </li>
  </ul>
</nav>

JQuery 代码

$(document).ready(function(){
  var mobileMenu = $(".level-nav li a");
  $(mobileMenu).each(function() {
    if ($(this).next().length > 0) {
        $(this).addClass("parent");
    };
  })

  /* Defined variables for main and sub multi-level navigations */
  var subNav = $("#toggle-btn");

  /* Function that activates the sub-navigation bar to toggle the sibiling which is the  .level-nav */
  $(subNav).click(function (e){
    e.preventDefault();
    $(this).siblings(".level-nav").toggle(175, "easeInQuad");
  });
});

最佳答案

按钮不是导航的兄弟,它被包装在导航的兄弟DIV中

$(this).closest('.toggleMenu').siblings(".level-nav").toggle(175, "easeInQuad");

要像这样使用 toggle(),您还必须包含 jQuery UI

FIDDLE

关于javascript - JQuery点击功能没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24046927/

相关文章:

javascript - 使用正则表达式删除所有 html 属性(替换)

javascript - 为什么在 window.location.href 之后没有打印任何内容?

jquery - 删除父级而不点击子级

javascript - 如何在不使用提交按钮的情况下从 html 表单传递值

javascript否决特别声明的css样式

javascript - 如何通过两次单击在两个方向上旋转图标?

javascript - 如何在tabpanel中动态隐藏和显示选项卡

javascript - 当父 div 中的数据表表被隐藏时,数据表数据表工具不起作用

javascript - 如何使用 jQuery 将选中的复选框的值添加到文本区域?

html - CSS div 在非响应旁边响应