Jquery显示和隐藏mouseout()问题



我已经设置了一个jquery悬停显示和隐藏功能点击这里的网站,但它不工作的方式,我想它。当您将鼠标悬停在链接"store"上时,它会显示隐藏的div,这是一个子菜单,一旦鼠标光标从链接"store"移开,隐藏的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>

有人有解决这个问题的办法吗?

我明白了。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事件附加到它上。然后注册点击链接很容易。

最新更新