【问题标题】:Jquery show hide in list not working fineJquery显示隐藏在列表中无法正常工作
【发布时间】:2015-10-05 21:03:36
【问题描述】:

我正在使用显示和隐藏功能来显示列表中的菜单项。它们在悬停时上下滑动。

问题是,当列表项展开时,菜单的整体背景也会展开,但是当它收缩时,背景也会收缩,如果你试图在展开的菜单下方找到一个项目,它会立即隐藏超出菜单边界。

可以通过将鼠标悬停在第二个列表项和第三个列表项之后看到此行为。

只需将鼠标悬停在新泽西商店,然后将鼠标悬停在纽约商店,您就会看到异常行为,例如崩溃。即它没有正确显示第三个列表,结果显示第一个

这是一个小提琴 Fiddle

html:

<div class="mega-col col-xs-12 col-sm-12 col-md-4" data-type="menu"><div class="mega-col-inner"><ul><li class="parent dropdown-submenu mega-group"><a class="dropdown-toggle" data-toggle="dropdown" href=""><span class="menu-title">Massachusetts Stores</span><b class="caret"></b></a><div class="dropdown-mega level2"><div class="dropdown-menu-inner"><div class="row"><div class="col-sm-12 mega-col" data-colwidth="12" data-type="menu"><div class="mega-col-inner"><ul><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=24"><span class="menu-title">Burlington Mall, MA</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=25"><span class="menu-title">Burlington Mall, MA - Cart</span></a></li></ul></div></div></div></div></div></li><li class="parent dropdown-submenu mega-group"><a class="dropdown-toggle" data-toggle="dropdown" href=""><span class="menu-title">New Jersey Stores</span><b class="caret"></b></a><div class="dropdown-mega level2"><div class="dropdown-menu-inner"><div class="row"><div class="col-sm-12 mega-col" data-colwidth="12" data-type="menu"><div class="mega-col-inner"><ul><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=26"><span class="menu-title">Brunswick Square Mall, NJ</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=30"><span class="menu-title">Garden State Plaza, NJ</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=27"><span class="menu-title">Menlo Park Mall, NJ</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=29"><span class="menu-title">Ocean County Mall, NJ</span></a></li><li class=" "><a href=""><span class="menu-title">Rockaway Townsquare, NJ</span></a></li></ul></div></div></div></div></div></li><li class="parent dropdown-submenu mega-group"><a class="dropdown-toggle" data-toggle="dropdown" href=""><span class="menu-title">New York Stores</span><b class="caret"></b></a><div class="dropdown-mega level2"><div class="dropdown-menu-inner"><div class="row"><div class="col-sm-12 mega-col" data-colwidth="12" data-type="menu"><div class="mega-col-inner"><ul><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=31"><span class="menu-title">Galleria at White Plains, NY</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=42"><span class="menu-title">Manhattan, NY-Toys 'R' Us </span></a></li></ul></div></div></div></div></div></li><li class="parent dropdown-submenu mega-group"><a class="dropdown-toggle" data-toggle="dropdown" href=""><span class="menu-title">North Carolina Stores</span><b class="caret"></b></a><div class="dropdown-mega level2"><div class="dropdown-menu-inner"><div class="row"><div class="col-sm-12 mega-col" data-colwidth="12" data-type="menu"><div class="mega-col-inner"><ul><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=32"><span class="menu-title">CrabTree Valley, NC</span></a></li><li class=" "><a href="index.php?route=common/location_details&amp;loc_id=2"><span class="menu-title">Fayetteville, NC</span></a></li></ul></div></div></div></div></div></li></ul></div></div>

js:

$(".parent.dropdown-submenu.mega-group").hover(
  function() {
     $(this).children('.dropdown-mega.level2').show("500");
  },
  function(){
     $(this).children('.dropdown-mega.level2').hide("500");
  });

css:

li.parent.dropdown-submenu.mega-group .dropdown-mega.level2 {
    display: none;
}

li {
    padding:10px;
    position: relative;
    margin:auto;
}

【问题讨论】:

  • 请把你的 html 格式化成可读的东西,而不是让人头疼
  • 请详细说明问题
  • 如果你的回答没问题,我会写作为答案@Ammar UI Hassan
  • 这里是人类格式的小提琴:jsfiddle.net/enjeup1a

标签: javascript jquery html css


【解决方案1】:

如果我理解这个问题,你可以使用 :not(:animated) jquery 选择器。

喜欢这个jsfiddle

$(".parent.dropdown-submenu.mega-group:not(:animated)")

【讨论】:

  • 我试过了,但没有任何改变。只需将鼠标悬停在新泽西商店,然后悬停在纽约商店,您会看到异常行为,例如崩溃。即它没有正确显示第三个列表,结果显示第一个
  • 您使用的是什么浏览器?这里按预期工作,“纽约商店”打开,但列表中的项目很少,鼠标停留在底部,然后打开“北卡罗来纳商店”。对我来说这听起来像是设计问题。
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 2022-01-06
  • 2020-06-06
  • 1970-01-01
相关资源
最近更新 更多