关闭mouseLeave菜单

时间:2017-03-20 12:32:10

标签: jquery css

我正在研究这个项目,导航菜单在悬停时自动打开,但是当我移动鼠标光标时它不会自动关闭。

这是我的代码,纠正错误的地方。

jQuery(document).on('hover', '.mobile-sub-menu-controller', function () {
       jQuery(this).siblings('.sub-menu').slideFadeToggle('return-position', 400);

        if (jQuery(this).find('i').hasClass('icon-angle-down')) {
            jQuery(this).find('i').removeClass('icon-angle-down');
            jQuery(this).find('i').addClass('icon-angle-up');
        } else {
            jQuery(this).find('i').removeClass('icon-angle-up');
            jQuery(this).find('i').addClass('icon-angle-down');
        }
    });

先谢谢

3 个答案:

答案 0 :(得分:1)

以下是mouseovermouseleave

的示例



$(document).on('mouseover', '.mobile-sub-menu-controller', function () {
       $(this).find('.sub-menu').stop().slideDown('fast');
});
$(document).on('mouseleave', '.mobile-sub-menu-controller', function () {
       $(this).find('.sub-menu').slideUp('fast');
});

.mobile-sub-menu-controller{
  padding:10px;
  border:1px solid red;
  cursor:pointer;
}
.sub-menu{
  display:none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mobile-sub-menu-controller'>
  open menu
  <ul class='sub-menu'>
    <li>menu item1
    <li>menu item2
    <li>menu item3
  </ul>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用void foo() { int n = 10; boost::shared_ptr< int > pn(&n, boost::null_deleter()); assert(*pn == 10); // succeeds assert(pn.get() == &n); // succeeds bar(pn); } 代替悬停,shared_ptr离开此区块时

答案 2 :(得分:0)

使用别名语法:

jQuery(document).on('hover', '.mobile-sub-menu-controller', function () {
     // enter code here
    },function(){
     // exit/mouse leave code here
});

或直接事件:

jQuery(document).on('mouseenter', '.mobile-sub-menu-controller', function ()       {
     // enter code here
    });
jQuery(document).on('mouseleave', '.mobile-sub-menu-controller',,function(){
     // exit/mouse leave code here
});
相关问题