メインナビゲーションとサブナビゲーションがありますが、設計上の理由から、別々のDIVにあります。メインナビゲーションアイテムにカーソルを合わせたときに適切なサブナビゲーションを表示したいのですが、ユーザーがマウスをメインナビゲーションアイテムの外に移動してサブナビゲーションに移動した場合も、サブナビゲーションを開いたままにしておきたいと思います。 -ナビゲーションエリア。最後の部分は私が立ち往生している場所です。
setTimeout()とIFステートメントを使用して何かを行う必要があることをホバーアウトすることを考えていますが、その領域で進展を遂げることができませんでした。それも試してみる価値のあるアプローチですか?
HTML:
<div id="mnav">
<ul id="buttons">
<li class="one"><a href="#">Main 1</a></li>
<li class="two"><a href="#">Main 2</a></li>
<li class="three"><a href="#">Main 3</a></li>
<li class="four nav-dark"><a href="#">Main 4</a></li>
</ul>
</div> <!-- /mnav -->
<div id="snav">
<ul class="snav-one">
<li><a href="#">Sub 1.1</a></li>
<li><a href="#">Sub 1.2</a></li>
<li><a href="#">Sub 1.3</a></li>
<li><a href="#">Sub 1.4</a></li>
<li><a href="#">Sub 1.5</a></li>
<li><a href="#">Sub 1.6</a></li>
</ul>
<ul class="snav-two">
<li><a href="#">Sub 2.1</a></li>
<li><a href="#">Sub 2.2</a></li>
</ul>
</div> <!-- /snav -->
JS:
$(document).ready(function() {
$("#buttons li.one, #buttons li.two").hover(function(){
var subnav = 'ul.snav-' + $(this).attr('class');
$("#snav").slideDown('fast').addClass("open").find(subnav).show();
}, function(e){
var subnav = 'ul.snav-' + $(this).attr('class');
$("#snav").slideUp('fast').removeClass("open").find(subnav).hide();
});
});