【问题标题】:jquery slideUp when mouse out鼠标移出时jquery slideUp
【发布时间】:2016-07-18 06:08:06
【问题描述】:

以下代码工作正常,但我想改变子菜单向上滑动的方式:我希望子菜单在鼠标离开时向上滑动,而不是单击父元素向上滑动 每个子菜单的所有元素

function initMenu() {
  $('#menu ul, #top-menu ul').hide();
  $('#menu ul, #top-menu ul').children('.current').parent().show();
  $('#menu li a,#top-menu li a').click(
  function() {
     var checkElement = $(this).next();
     if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        checkElement.slideDown('normal');
        return false;
     }
    if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
        checkElement.slideUp('normal');
        return false;
    }
  }
);

【问题讨论】:

标签: jquery slideup mouseout


【解决方案1】:

使用hover 方法。您无需通过这种方式检查元素是否可见:

$('#menu li a,#top-menu li a').hover(function(){
   $(this).next().slideDown('normal'); //on mouse over
}, function(){
   $(this).next().slideUp('normal'); //on mouse out
});

【讨论】:

  • 谢谢。这也可以正常工作,并且是一种更清洁的解决方案。问题是子菜单在悬停子元素时应该保持可见。这样,当悬停子元素时它会向上滑动,这是我的主要问题。
  • 您需要提出另一个问题或搜索相关问题才能得到答案。
  • 我也替别人回答过。但是我很忙,所以这次不能写。
【解决方案2】:
$('#menu li a,#top-menu li a').mouseover(function(){
  $(this).next().slideDown('normal');
}).mouseout(function(){
  $(this).next().slideUp('normal');
});

mouseover

mouseout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 2015-03-27
    • 2018-03-26
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多