2013-05-12 136 views
2

我已经设置了一个jQuery的悬停显示和隐藏功能click here for site但是它不工作,我想要的方式。当鼠标悬停在“存储”链接上时,一旦鼠标光标从链接“存储”隐藏的div幻灯片,它就会显示隐藏的div,这是一个子菜单。jquery显示和隐藏mouseout()问题

我希望子菜单保持激活状态,除非子菜单中的某个链接已被点击或者鼠标光标已移出子菜单区域。

下面

是我的代码片段...

$(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> 

有没有人有一个解决方案...?

+1

这是一个很容易解决的问题,但是如果您发布了js小提琴,我们可以提供特定于您的网站的代码。 – 2013-05-12 09:38:53

回答

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,鼠标事件没有注册。因此,解决方案是在您决定展示它时(即在mouseenter上)将mouseleave事件附加到它。然后注册点击链接很容易。

+0

真棒伙计!有用 – NewBoy 2013-05-12 10:03:41