2016-06-24 14 views
0

私は数多くのJSクエリを試してみましたが、どれも動作していないようです。クリック時のドロップダウンメニュー

関連するリストアイテムがクリックされたときにのみドロップダウンメニューを表示したいのですが、ユーザーがulをクリックするかリンクをクリックするまで表示する必要があります。ここで

は私のhtmlです:

<div class="sub-nav"> 
    <div class="container"> 
    <ul> 
     <a href="#"><li class="active">All</li></a> 
     <a href="#"><li>Videos</li></a> 
     <a href="#"><li>Images</li></a> 
     <a href="#"><li>Maps</li></a> 
     <a href="#"><li>News</li></a> 
     <a href="#"> 
     <li id="has-sub">More 
      <ul> 
      <a href="#"><li>Shopping</li></a> 
      <a href="#"><li>Books</li></a> 
      <a href="#"><li>Flights</li></a> 
      <a href="#"><li>Apps</li></a> 
      </ul> 
     </li> 
     </a> 
     <a href="#"> 
     <li id="search-tools">Search Tools 
      <ul> 
      <a href="#"><li id="has-sub">Any Country</li></a> 
      <a href="#"><li id="has-sub">Any Time</li></a> 
      <a href="#"><li id="has-sub">All Results</li></a> 
      </ul> 
     </li> 
     </a> 
    </ul> 
    </div> 
</div> 
+0

にHTMLが間違って動作するはずです。要素 'a'は要素' ul'の子として許されません。 –

+0

アンカータグは、 –

+0

の内部にある必要があります。これを見てください:http://stackoverflow.com/questions/31003519/open-sub-menu-onclick-and-close-opened-sub-menu – JustBaron

答えて

3

はこれを試してみてください:

$("li:has(ul)").click(function(){ 
$("ul",this).toggle('slow'); 
}); 

あなたはjQueryのライブラリを持っていることを確認してください。

+0

@ ankita kedia、素敵な仕事... – Ehsan

+0

ありがとう@ehsan .. –

+0

なぜdownvote? –

0

代わりにjQueryライブラリをロードすると、このように使用できます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

さて、これはあなたが探しているものである

<style> 
    li > ul{display:none;} 
    .show {display:block;} 
</style> 

以下のようにあなたのメニューHTMLにスタイルを適用します。

<script> 
    jQuery("li:has(ul)").click(function(){ 
     jQuery("ul",this).toggleClass('show'); 
    }); 
</script> 

$("li:has(ul)").click(function(){ 
 
    $("ul",this).toggleClass('show'); 
 
});
li > ul{display:none;} 
 
.show {display:block;} 
 
\t
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="sub-nav"> 
 
       <div class="container"> 
 

 
        <ul> 
 
         <a href="#"><li class="active">All</li></a> 
 
         <a href="#"><li>Videos</li></a> 
 
         <a href="#"><li>Images</li></a> 
 
         <a href="#"><li>Maps</li></a> 
 
         <a href="#"><li>News</li></a> 
 
         <a href="#"><li id="has-sub">More 
 
          <ul> 
 
           <a href="#"><li>Shopping</li></a> 
 
           <a href="#"><li>Books</li></a> 
 
           <a href="#"><li>Flights</li></a> 
 
           <a href="#"><li>Apps</li></a> 
 
          </ul> 
 
         </li></a> 
 
         <a href="#"><li id="search-tools">Search Tools 
 
          <ul> 
 
           <a href="#"><li id="has-sub">Any Country</li></a> 
 
           <a href="#"><li id="has-sub">Any Time</li></a> 
 
           <a href="#"><li id="has-sub">All Results</li></a> 
 
          </ul> 
 
         </li></a> 
 
        </ul> 
 

 
       </div> 
 
      </div>

使用jQuery代わりに$、いくつかのフレームワークやCMSツールは、それとの競合を持っているので。したがって、常にjQueryが機能します。

0

あなたが尋ねたようにリンクをクリックすると、このソリューションのドロップダウンメニューが崩壊します。

$('a').click(function(){ 
 
    $('.container ul:not(:first-child)').hide(); 
 
    if($(this).next().is('ul')){ 
 
    $(this).next().toggle('slow'); 
 
    } 
 
});
ul ul{ 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="sub-nav"> 
 
       <div class="container"> 
 

 
        <ul> 
 
         <a href="#"><li class="active">All</li></a> 
 
         <a href="#"><li>Videos</li></a> 
 
         <a href="#"><li>Images</li></a> 
 
         <a href="#"><li>Maps</li></a> 
 
         <a href="#"><li>News</li></a> 
 
         <a href="#"><li id="has-sub">More 
 
          <ul> 
 
           <a href="#"><li>Shopping</li></a> 
 
           <a href="#"><li>Books</li></a> 
 
           <a href="#"><li>Flights</li></a> 
 
           <a href="#"><li>Apps</li></a> 
 
          </ul> 
 
         </li></a> 
 
         <a href="#"><li id="search-tools">Search Tools 
 
          <ul> 
 
           <a href="#"><li id="has-sub">Any Country</li></a> 
 
           <a href="#"><li id="has-sub">Any Time</li></a> 
 
           <a href="#"><li id="has-sub">All Results</li></a> 
 
          </ul> 
 
         </li></a> 
 
        </ul> 
 

 
       </div> 
 
      </div>

0
<div class="sub-nav"> 
      <div class="container"> 

       <ul> 
        <li class="active">All</li> 
        <li>Videos</li> 
        <li>Images</li> 
        <li>Maps</li> 
        <li>News</li> 
        <li id="has-sub">More 
         <ul> 
          <li>Shopping</li> 
          <li>Books</li> 
          <li>Flights</li> 
          <li>Apps</li> 
         </ul> 
        </li> 
        <li id="search-tools">Search Tools 
         <ul> 
          <li id="has-sub">Any Country</li> 
          <li id="has-sub">Any Time</li> 
          <li id="has-sub">All Results</li> 
         </ul> 
        </li> 
       </ul> 

      </div> 
     </div> 

これは

関連する問題