我已经设置了一个jquery悬停显示并隐藏了函数click here for site但是它不能按照我想要的方式工作。当您将鼠标悬停在链接“store”上时,它会显示隐藏的div,这是一个子菜单,一旦鼠标光标从链接“存储”移动隐藏的div幻灯片。
我希望子菜单保持激活状态,除非单击子菜单中的链接或者鼠标光标已移动到子菜单区域之外。
下面的是我的代码片段......
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').hover(function(){
$(".slidingDiv").slideToggle();
});
$('.slidingDiv').mouseout(function(){
$(".slidingDiv").slideUp();
});
});
<div id="menu_store" class="slidingDiv transparent">
<div class="menu">
<h3>clothing</h3>
<ul class="navigation">
<li><a href="#">sweats / knitwear</a></li>
<li><a href="#">shirts</a></li>
<li><a href="#">denim</a></li>
<li><a href="#">outwear</a></li>
<li><a href="#">footwear</a></li>
</ul>
</div>
<div class="menu">
<h3>lifestyle</h3>
<ul class="navigation">
<li><a href="#">books</a></li>
<li><a href="#">art</a></li>
<li><a href="#">objects</a></li>
</ul>
<div id="menu">
<ul class="cl">
<li><a class="show_hide" href="#">store</a></li>
<li><a href="#">daily</a></li>
<li><a href="#">featured</a></li>
<li><a href="#">contact</a></li>
</ul>
有没有人有这方面的解决方案......?
答案 0 :(得分:1)
我明白了。 http://jsfiddle.net/vtFfv/ 相关文档:http://api.jquery.com/mouseleave/
$(document).ready(function () {
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').mouseenter(function () {
$(".slidingDiv").slideDown();
$(".slidingDiv").mouseleave(function () {
$(".slidingDiv").slideUp();
});
$('.slidingDiv a').each(function () {
$(this).click(function () {
$(".slidingDiv").slideUp();
});
});
});
});
隐藏slidingDiv
时,未注册鼠标事件。因此,解决方案是在您决定显示事件后(即mouseleave
上)附加mouseenter
事件。然后注册点击链接很容易。