【问题标题】:Mobile menu dropdown issue移动菜单下拉问题
【发布时间】:2018-10-26 07:56:26
【问题描述】:

这是我的网站:http://lowandheavy.com 问题是当网站在移动设备中打开时,名称为“女性”的第二个菜单不像菜单“男性”那样工作。

它会打开下拉菜单,但会立即重定向到子菜单 3. 下面是代码:

<ul class="nav-menu navigation-tier navigation-tier-primary" data-navigation-tier-primary>

     <li class="has-slide-out header-navigation-item navigation-item-primary">
      <a class="navigation-link-primary" href="/" >Home</a>
    </li>

    <li class="dropdown has-slide-out header-navigation-item navigation-item-primary">
    <a class="dropbtn navigation-link-primary" href="#">Men</a>
      <div class="dropdown-content">
        <a href="/men/tanks/">Tanks </a>
        <a href="/men/tshirts">T-shirts</a>
      </div>
    </li>

    <li class="dropdown has-slide-out header-navigation-item navigation-item-primary">
    <a class="dropbtn navigation-link-primary" href="#">Women</a>
      <div class="dropdown-content"> 
        <a href="/women/leggings/">Leggings</a>
        <a href="/women/tanks">Tanks</a>
        <a href="/women/tshirts">T-shirts</a>
        <a href="/women/tshirts/v-neck/">V-Neck</a>
        <a href="/women/unisex-tees/">Unisex Tees</a>
      </div>
    </li>

    <li class="has-slide-out header-navigation-item navigation-item-primary">
      <a class="navigation-link-primary" href="/hats/" >Hats</a>
    </li>
    <li class="has-slide-out header-navigation-item navigation-item-primary">
      <a class="navigation-link-primary" href="/about/" >About</a>
    </li>
    <li class="has-slide-out header-navigation-item navigation-item-primary">
      <a class="navigation-link-primary" href="/contact-us/" >Contact</a>
    </li>
    <li class="has-slide-out header-navigation-item navigation-item-primary">
      <a class="navigation-link-primary" href="/news-feed/" >News</a>
    </li>

  </ul>

【问题讨论】:

  • 有什么问题?我没有找到任何
  • @Nirali 首先将网站打开到手机中,然后单击切换,然后单击菜单名称 Men 然后单击菜单名称 Women 您将看到菜单列表发出它不保持重定向

标签: javascript jquery css


【解决方案1】:

通过单击菜单名称男性,然后同时单击菜单名称女性,您将面临无法保持重定向的问题

这不是问题 发生这种情况是因为当您单击“男士”菜单时,它会打开男士的子菜单。然后同时点击女人打开的女人子菜单和“男人”的子菜单关闭,这样男女之间的差距就缩小了,你直接点击了“女人”的子菜单之一(可能是第 2 或第 3 个子菜单)没有点击“女人” " 菜单,你会被重定向。

检查下面的sn-p

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"/>

<nav>
    <ul class="nav">
	    <li><a href="#">Link 1</a></li>
		<li><a href="#" id="btn-1" data-toggle="collapse" data-target="#submenu1" aria-expanded="false">Link 2 (toggle)</a>
			<ul class="nav collapse" id="submenu1" role="menu" aria-labelledby="btn-1">
				<li><a href="#">Link 2.1</a></li>
				<li><a href="#">Link 2.2</a></li>
				<li><a href="#">Link 2.3</a></li>
			</ul>
		</li>
    <li><a href="#" id="btn-1" data-toggle="collapse" data-target="#submenu2" aria-expanded="false">Link 3 (toggle)</a>
			<ul class="nav collapse" id="submenu2" role="menu" aria-labelledby="btn-1">
				<li><a href="#">Link 3.1</a></li>
				<li><a href="#">Link 3.2</a></li>
				<li><a href="#">Link 3.3</a></li>
			</ul>
		</li>
		<li><a href="#">Link 4</a></li>
		<li><a href="#">Link 5</a></li>
	</ul>
</nav>

如果您直接打开“女性”菜单,那么您将看不到您的问题,因为当时“男性”菜单的子菜单未打开

【讨论】:

  • 我正在寻找解决方案来解决这个问题我想如何让它保持在那里即使同时点击
  • 如果一个子菜单已经打开并且你点击其他保持打开子菜单的菜单不要关闭。它会工作
  • 是的,我只想让两个菜单都保持打开状态,只是不希望这种肮脏的重定向
  • @R.K.Bhardwaj 检查我的答案我添加了 sn-p
【解决方案2】:
Lets DO the same on click

/***Add css in file***/

.dropdown.active .dropdown-content {
    display: block;
}

/***Add Jquery in file***/

$('.navigation-link-primary').click(function(e){
    $('.dropdown').removeClass('active');
    $(this).parent().addClass('active');
 });

【讨论】:

    【解决方案3】:

    $('.dropbtn.navigation-link-primary').click(function(e){
       if($(this).hasClass('active')) {
               $("a.dropbtn.navigation-link-primary").removeClass('active');
            }
            else {
               $(this).addClass('active');
            }
     });
    @media(max-width:850px) {
    .dropdown:hover .dropdown-content {
        display: none !important;
    }
    body.home .main-header-menu .header-navigation-item a {
        width: 100% !important;
        display: inline-block;
    }
    a.dropbtn.navigation-link-primary.active+div {
        display: block !important;
    }
    }

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      相关资源
      最近更新 更多