jquery显示并隐藏mouseout()问题

时间:2013-05-12 09:36:04

标签: javascript jquery html

我已经设置了一个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>

有没有人有这方面的解决方案......?

1 个答案:

答案 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事件。然后注册点击链接很容易。