0

私は現在ナビゲーションに取り組んでいて、いくつかの問題に遭遇しました。ナビゲーションの子用のslideToggleメニューを備えた、固定ナビゲーションがあります。「親」のクラスを持つ「li」がfalseを返すようにして、クリックしたときにページの先頭に戻らないようにする必要があります。ただし、これを行うと、すべての子リンクが無効になります。親自体をターゲットにして、その1つだけを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>

$("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 に答える