2016-08-23 18 views
0

私はポインタをその部分に置いたままにしない限り、ナビゲータを表示したままにしたかったのです。何が起こるのは、もし私がポインタをnavbarに持っていれば、ディスプレイはトグルし続ける(それが隠れているのを隠す..それはループにありますか?)私はただそれが欲しいだけです。私のポインタがあなたのコードでは、いくつかのエラーを持っており、あなたが達成しようとしているものを完全には明らかではないがJQuery Hover and SlideToggle

<script> 
 
$(document).ready(function(){ 
 
\t 
 
\t $(".menu-trigger").hover(function(){ 
 
\t 
 
\t $("li").slideToggle(400, function(){ 
 
\t \t 
 
\t \t jQuery(this).toggleClass("nav-expanded").css('show',''); 
 
\t }); 
 
\t 
 
\t }); \t 
 
}); 
 
</script>
img { 
 
\t padding: 0px; 
 
\t max-width: 100%; 
 
\t max-height: auto; 
 
} 
 

 
.menu-trigger { 
 
\t pointer: cursor; 
 
\t display: block; 
 
\t position: fixed; 
 
\t font-family: Sans-serif; 
 
\t font-size: 15px; 
 
\t background-color: #664c7d; 
 
\t height: 35px; 
 
\t width: 100%; 
 
\t 
 
} 
 
\t li{ 
 
\t \t display: none; 
 
\t } 
 
\t 
 
li.navbar ul { 
 
\t } 
 
} 
 

 
div.nav-expanded { 
 
\t display: block; 
 
\t 
 
}

+0

あなたのコードスニペットに間違いがありますので、訂正してください。 – saarrrr

+0

'.css( 'show': '')'で何を達成しようとしていますか? –

+0

質問から不要な感情を削除しました。 –

答えて

0

を去ったとき(.css('show', '')を?)その後、再び非表示にします。 私はあなたが必要とするものは、吊るされたときにそのクラスを切り替える要素であり、もはや吊るされていないときに元の状態に戻るということです。 あなたがしなければならないことは、マウスが要素の上を移動するたびにナビゲーションバーのクラスを切り替えることです。

$navと仮定すると、あなたのナビゲーションバーで、あなたが使用することができます。

$nav.on('mouseover mouseout', function(){ 
    $nav.toggleClass('show'); 
}); 

代わりに(と間違いなくより安全):あなたはこのJSFiddleで使用状況を見ることができます

$nav.on('mouseover', function(){ 
    $nav.addClass('show'); 
    }).on('mouseout', function(){ 
    $nav.removeClass('show'); 
    });