2016-07-02 14 views
1

現在、私は.wrapper1要素で私のネストされたリストを表示するには、私のCSSで:hoverを使用しています。ホバー上ではなくクリックで開くようにしたい。ここで表示要素:ホバー

は、私がこれまで試したものです:

$(function() { 
    // whenever we hover over a menu item that has a submenu 
    $('li.parent').on('click', function() { 
    var $menuItem = $(this), 
     $submenuWrapper = $('> .wrapper', $menuItem); 

    // grab the menu item's position relative to its positioned parent 
    var menuItemPos = $menuItem.position(); 

    // place the submenu in the correct position relevant to the menu item 
    $submenuWrapper.css({ 
     top: menuItemPos.top, 
     left: menuItemPos.left + Math.round($menuItem.outerWidth() * 0.75) 
    }); 
    }); 
}); 

デモ:以下https://jsfiddle.net/72tnxh45/2/

は、すべてのサブリンクを表示するように影響を与えることができるCSSです。

.wrapper1 li:hover > .wrapper1 { 
    display: block; 
} 
+0

、あなたはjQueryのをインポートする必要があります。ここでは[更新されたフィドル](https://jsfiddle.net/72tnxh45/2/) – 4castle

+0

私のコードでは、jqueryが含まれています。 –

答えて

0
$(document).ready(function(){ 

    $(".wrapper ul li").click(function(){ 
     //do what ever you want to do with li 
    }); 
}); 
0

見添付スニペットを持ってください。

もjqyeryコードとCSSのいくつかの変更がなされています。手始めに

$(function() { 
 
    // whenever we hover over a menu item that has a submenu 
 
    $('li.parent').on('click', function() { 
 
     if($(this).children(".wrapper").attr('style')=='display: block;'){ 
 
      $(this).children(".wrapper").css('display','none'); 
 

 
    }else{ 
 
        $(this).children(".wrapper").css('display','block'); 
 

 
     } 
 
     
 
    }); 
 
    
 
    
 
});
.wrapper { 
 
    position: relative; 
 
} 
 

 
ul { 
 
    width: 200px; 
 
    max-height: 250px; 
 
    overflow-x: hidden; 
 
    overflow-y: auto; 
 
} 
 

 
li { 
 
    position: static; 
 
} 
 
li .wrapper { 
 
    position: absolute; 
 
    z-index: 10; 
 
    display: none; 
 
} 
 
li:hover > .wrapper { 
 
    //display: block; 
 
    
 
} 
 

 
li: 
 

 
ul { 
 
    margin: 1em; 
 
    color: white; 
 
    font-family: sans-serif; 
 
    font-size: 16px; 
 
} 
 

 
li { 
 
    padding: 1em; 
 
} 
 
li ul { 
 
    margin: 0; 
 
} 
 
li .wrapper { 
 
    cursor: auto; 
 
} 
 
li .wrapper li { 
 
    padding: 0.5em; 
 
} 
 
li:nth-child(2n) { 
 
    background: #0E8CE0; 
 
} 
 
li:nth-child(2n+1) { 
 
    background: #0064B3; 
 
} 
 
li.parent { 
 
    background: #00B99B; 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    
 

 
    
 
    
 
    
 
    
 

 
    <div class="wrapper"> 
 
    <ul> 
 
    <li>Abc</li> 
 
    <li>Def</li> 
 
    <li>Ghi</li> 
 
    <li>Jkl</li> 
 
    <li class="parent">Mno > 
 
     <div class="wrapper"> 
 
     <ul> 
 
      <li>Abc</li> 
 
      <li>Def</li> 
 
      <li>Ghi</li> 
 
      <li>Jkl</li> 
 
      <li class="parent">Mno > 
 
      <div class="wrapper"> 
 
       <ul> 
 
       <li>Abc</li> 
 
       <li>Def</li> 
 
       <li>Ghi</li> 
 
       <li>Jkl</li> 
 
       <li>Mno</li> 
 
       <li>Pqr</li> 
 
       <li>Stu</li> 
 
       <li>Vw</li> 
 
       <li>Xyz</li> 
 
       </ul> 
 
      </div> 
 
      </li> 
 
      <li>Pqr</li> 
 
      <li>Stu</li> 
 
      <li>Vw</li> 
 
      <li>Xyz</li> 
 
     </ul> 
 
     </div> 
 
    </li> 
 
    <li>Pqr</li> 
 
    <li>Stu</li> 
 
    <li>Vw</li> 
 
    <li>Xyz</li> 
 
    <li class="parent">Abc > 
 
     <div class="wrapper"> 
 
     <ul> 
 
      <li>Abc</li> 
 
      <li>Def</li> 
 
      <li>Ghi</li> 
 
      <li>Jkl</li> 
 
      <li>Mno</li> 
 
      <li>Pqr</li> 
 
      <li>Stu</li> 
 
      <li>Vw</li> 
 
      <li>Xyz</li> 
 
     </ul> 
 
     </div> 
 
    </li> 
 
    <li>Def</li> 
 
    <li>Ghi</li> 
 
    <li>Jkl</li> 
 
    <li>Mno</li> 
 
    <li>Pqr</li> 
 
    <li>Stu</li> 
 
    <li>Vw</li> 
 
    <li>Xyz</li> 
 
    </ul> 
 
</div>

+0

それはちょうど子リストの位置に関する問題に直面して私のために働く。私はクリックされたリストを閉じない位置のための私のコードを追加する場合。 –

+0

あなたの努力にもお礼を言います –

+0

もう一度試してみましょう... –