javascript - 点击parent "li"元素需要打开underlaying "ul"

标签 javascript jquery html css

人,

有个问题先贴代码再解释

$(document).ready(function() {
  $a = $('ul li a');
  $b = $('ul ul');
  $a.on("click", function() {
    $b.slideToggle(500);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navigation">
  <nav>
    <ul>
      <li><a href="#">Artists</a>
      </li>
      <ul>
        <li><a href="">Artists</a>
        </li>
        <li><a href="">Artists</a>
        </li>
        <li><a href="">Artists</a>
        </li>
        <li><a href="">Artists</a>
        </li>
      </ul>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
      <li><a href="">Artists</a>
      </li>
    </ul>
  </nav>
</div>

我需要 li 来识别它是否有 ulslideToggle 如果有。 当点击另一个带有 ulli 时,前一个下拉菜单会关闭。

我完全不知道我将如何完成这个!

提前致谢!

最佳答案

我做了一些小改动。我需要嵌套内部 ul 并稍微简化选择器。为了让它更好,您可以删除 anchor 标记,只需单击 li 即可,这样您就不需要遍历到父级。

$(document).ready(function() {
  $link = $('ul li a')

  $link.on("click", function() {
    $(this).parent().find('ul').slideToggle(500);
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navigation">
  <nav>
    <ul>
      <li><a href="#">Artists</a>
        <!-- I had to nest the ul inside the li -->
        <ul>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
        </ul>
      </li>
      <li><a href="">Artists</a>
        <ul>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
          <li><a href="">Artists</a></li>
        </ul>
      </li>
      <li><a href="">Artists</a></li>
      <li><a href="">Artists</a></li>
      <li><a href="">Artists</a></li>
      <li><a href="">Artists</a></li>
      <li><a href="">Artists</a></li>
      <li><a href="">Artists</a></li>
    </ul>
  </nav>
</div>

关于javascript - 点击parent "li"元素需要打开underlaying "ul",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798774/

相关文章:

PHP检查用户是否在文本输入中输入了一些东西

jquery - 获取触发工具提示的 HTML 元素的 ID

javascript - 日历未显示在 Bootstrap datetimepicker 中

javascript - 可以让正则表达式只匹配某些字符/[&< >"' ]/g

javascript - 如何使用无限滚动和砌体实现 addthis share

javascript - SignalR 和 WebAPI

html - h1、h2、h3.. 元素吃掉 div 边距

javascript - 添加指令时如何避免多次 Angular 加载?

javascript - 如何在保持其响应式设计能力的同时使用 flexbox 重叠图像

php - 在产品预览 slider 上显示图像