2017-06-24 13 views
0

これは多くの質問があります。しかし、私は解決策を見つけることができないようです。私はホバー上の私のサブメニューを開くjQueryコードを持っていますが、サブメニュー項目を調べようとすると消えます。どうすれば修正できますか?jQuery:サブメニュー項目の上にカーソルを置いたままサブメニューを開いたままにする

は、ここに私のコードです:

$('.hover').hover(
 
    function() { 
 
    $('.drop-box').show(); 
 
    }, 
 
    function() { 
 
    $('.drop-box').hide(); 
 
    }) 
 
});
.drop-box { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 60px; 
 
    background: darkgreen; 
 
    top: 60px; 
 
    left: 0; 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hover">hover</div> 
 
    <div class="drop-box"> 
 
    <div class="container row"> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

答えて

1

だけ.hover.drop-boxとそのすべての内容を配置します。 さらに、テキストと.drop-boxの間の隙間を避けるために、topプロパティを削除する必要があります。

$('.hover').hover(
 
       function() { 
 
        $('.drop-box').show(); 
 
       }, 
 
       function() { 
 
        $('.drop-box').hide(); 
 
       } 
 
      );
.drop-box { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 60px; 
 
    background: darkgreen; 
 
    // top: 60px; 
 
    left: 0; 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hover">hover<div class="drop-box"> 
 
    <div class="container row"> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    </div> 
 

UPDATE:

あなたは.hover.drop-boxを移動することはできません場合は、DIVですべてをラップし、CSSを使ってホバーイベントを追加することができます。

.drop-box { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 60px; 
 
    background: darkgreen; 
 
    // top: 60px; 
 
    left: 0; 
 
    display: none; 
 
} 
 

 
.everything:hover .drop-box { 
 
    display: block; 
 
}
<div class="everything"> 
 
    <div class="hover">hover</div> 
 
    <div class="drop-box"> 
 
    <div class="container row"> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <p class="mb-0">Text</p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

さて、私はそれを置くことができない場合はどうすればいいですか?どういうわけか、私はまだそれを働かせることができますか? – hemoglobin

+0

さて、jQueryよりはるかに単純なCSSソリューションがあります。それは大丈夫ですか? –

+0

確かに、それが動作する限り! – hemoglobin

関連する問題