0

我目前正在研究导航并且遇到了一些麻烦。它有一个固定的导航,带有一个用于导航子项的 slideToggle 菜单。我需要让带有“父”类的“li”返回false,这样它就不会在单击时跳回页面顶部。但是,当我这样做时,它会禁用所有子链接。是否可以只针对父母本身并仅返回那个错误?

HTML:

<nav>
 <ul>
  <li><a href="#"></a></li>
  <li class="parent">
    <a href="#"></a>
    <ul>
      <li><a href="#"></a></li>
      <li><a href="#"></a></li>
    </ul>
  </li>
  <li><a href="#"></a></li>
 </ul>
</nav>

JS:

$("li.parent").click(function(){
   $(this).children("ul").slideToggle(300);
   return false;
});
4

2 回答 2

2

尝试eq(0)仅匹配<ul>s的第一次出现

$("li.parent").click(function(){
    $(this).children("ul").eq(0).slideToggle(300);
    return false;
});
于 2013-01-07T21:01:56.323 回答
0

所以我通过使用 and if 语句和 .preventDefault() 找到了解决方案

以下代码是我最终得到的

$("li.parent").click(function(e){
  if($(this).children("ul").is(':hidden')) {
      e.preventDefault();
  };
  $(this).children("ul").first().slideToggle(300);
});
于 2013-01-07T21:58:10.347 回答