引导下拉侧边菜单仅工作一次

bootstrap dropdown side menu works only once

本文关键字:工作 一次 菜单      更新时间:2023-09-26

...和菜单项保持活动状态。但从一开始:我有一个带有引导程序的响应式顶部菜单的网站(工作,在将菜单toogle最小化为下拉按钮之后(和一个侧菜单作为导航药丸,它选择选项卡窗格。由于保持响应,我使用CSS(xs-toogle和xs-collapse(在最小宽度后隐藏侧边菜单,并将按钮显示为下拉菜单。这里有相关代码:

   <div class="container-fluid">
     <div class="row">
       <div class="col-xs-1 col-sm-3">
                <div class="dropdown">
                    <!-- show after >=768 width -->
                    <button type="button" class="btn btn-default dropdown-toggle xs-toggle" id="dropmenu" data-toggle="dropdown">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>   
                    <ul class="nav nav-pills nav-stacked dropdown-menu" role="menu" aria-labelledby="dropmenu" aria-haspopup="true" aria-expanded="false">
                        <li class="nav-item" role="presentation"><a role="menuitem" class="dropdown-item nav-link" tabindex="-1" href="#goitem1" data-toggle="pill">Item1</a></li>
                        <li class="nav-item" role="presentation"><a role="menuitem" class="dropdown-item nav-link" tabindex="-1" href="#goitem2" data-toggle="pill">Item2</a></li>
                        <li class="nav-item" role="presentation"><a role="menuitem" class="dropdown-item nav-link" tabindex="-1" href="#goitem3" data-toggle="pill">Item3</a></li>
                    </ul>
                    <!-- hide after <768 width -->
                    <ul class="nav nav-pills nav-stacked xs-collapse" id="TabItems">
                        <li class="active"><a href="#goitem1" data-toggle="pill">Item1</a></li>
                        <li><a href="#goitem2" data-toggle="pill">Item2</a></li>
                        <li><a href="#goitem3" data-toggle="pill">Item3</a></li>
                    </ul>
                </div> <!-- dropdown -->
            </div> <!-- col -->
            <div class="col-xs-10 col-sm-7">
                <div class="maincontent">
                  <div class="tab-content">
                    <div class="tab-pane active fade in" id="goitem1">
                        <div class="row">
                            <div class="col-xs-12 col-sm-6">
                                <h1 class="flyer">CONTENT</h1>
                            </div> <!-- col -->
                            <div class="col-xs-0 col-sm-6 deco">
                                <h1 class="flyer">CONTENT</h1>
                            </div>
                        </div> <!-- row -->
                    </div> <!-- tab-pane -->
                    <div class="tab-pane fade" id="goitem2">
                        <div class="row">
                            <div class="col-xs-12 col-sm-6">
                                <h1 class="flyer">CONTENT</h1>
                            </div>
                            <div class="col-xs-0 col-sm-6 deco">
                                <h1 class="flyer">CONTENT</h1>
                            </div>
                        </div> <!-- row -->
                    </div> <!-- tab-pane -->
                    <div class="tab-pane fade" id="goitem3">
                        <div class="row">
                            <div class="col-xs-12 col-sm-6">
                                <h1 class="flyer">CONTENT</h1>
                            </div>
                            <div class="col-xs-0 col-sm-6 deco">
                                <h1 class="flyer">CONTENT</h1>
                            </div>
                        </div> <!-- row -->
                    </div> <!-- tab-pane -->
                  </div> <!-- tab-content -->
                </div> <!-- maincontent -->
            </div> <!-- col -->
        </div> <!-- row -->
      </div> <!-- container -->

一切似乎都很好,最小化窗口后,导航药丸菜单消失并出现下拉按钮。我可以按下按钮,出现下拉列表,我可以单击菜单条目,将显示项目部分。但我只能单击每个菜单项一次。下拉列表中的项目保持活动状态,无法对这些项目执行更多操作。由于我在Javascript上的弱点,我只使用带有html和css的引导程序,我不再知道出了什么问题。提前感谢您给我提示以解决问题并更好地了解后台发生的事情。此致敬意拉尔夫

我添加了 CSS:

/* Seitenmenu Angebote*/
/* +++ HAUPTSEITE +++ */
.maincontent{
    background-color: #ffffff;
color: #000;
    opacity: 0.9;
    padding: 5%;
    border: 10px outset #d22814;
}
.xs-collapse {
  display: none;
  visibility: hidden;
}
.xs-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.xs-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
.btn-default.xs-toggle .icon-bar {
  background-color: #888;
}
@media (min-width: 990px) {
  .xs-toggle {
    display: none;
    visibility: hidden;
  }
  .xs-collapse {
    display: block;
    visibility: visible;
  }
}
.nav-pills > li > a {
    font-size: 1.2em;
    color: #d22814;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
    color: #ffffff;
    background-color: #d22814;
}
.nav-pills > li > a:hover,
.nav-pills > li > a:focus {
    background-color: #fae5e2;
}
.flyer {
    /*color: #605f5f;*/
    color: #58595b;
    font-weight: bold;
    font-size: 1.8em;
}

经过多次尝试和大量研究,我发现不是真正的原因,而是一个可行的解决方案。我在 JQuery 脚本之后添加了以下代码:

$(function () {
    $('.dropdown-menu a').click(function (e) {
        $('.active').removeClass('active');
    });
});

有了这个功能,对我来说就足够了。此致敬意拉尔夫

对我来说

,将属性data-target="#navItemGame"添加到<a>dropdown-menu类的 #id 可以解决我的问题。简单添加data-targetid="myID"非常棒。

<li class="dropdown">
   <a class="dropdown-toggle" data-toggle="dropdown" href="#" data- 
   target="#navItemGame">GAME</
        <ul class="dropdown-menu" id="navItemGame">
             <li><a href="#">MODE 1</a></li>
             <li><a href="#">MODE 2</a></li>
             <li><a href="#">MODE 3</a></li>
        </ul>
</li>

所以,对于今天像BOOTSTRAP这样的大假品牌来说,这是耻辱。无论如何,如果您不喜欢这个肮脏的解决方案,请不要给我 Negativ 分数你必须让你的负分数引导

基于 Bootstap 文档,带有切换菜单项的导航栏必须类似于以下代码:

<ul class="nav nav-tabs">
<li class="dropdown" style="float: right;">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Filters</a>
            <ul class="dropdown-menu">
                <li><a href="#">Most Sealers</a></li>
                    <li><a href="#">Newest</a></li>
            </ul>
    </li>
    <li class="active"><a href="#">Group 1</a></li>
    <li><a href="#">Group 2</a></li>
    <li><a href="#">Group 3</a></li>
</ul>

但这不能正常工作,然后我将此示例更改为以下并工作:

<ul class="nav nav-tabs" id="ulnav">
<li class="dropdown" style="float: right;">
        <a id="lk1" href="#" onclick="BShameMenu();">Filters  <span class="caret"></span></a>
            <ul class="dropdown-menu" id="lk1ul">
                <li><a href="#" onclick="jQuery('#lk1').click();">Most Sealers</a></li>
                    <li><a href="#" onclick="jQuery('#lk1').click();">Newest</a></li>
            </ul>
    </li>
    <li class="active"><a href="#" onclick="BShameMenu2(jQuery(this));">Group 1</a></li>
    <li><a href="#" onclick="BShameMenu2(this);">Group 2</a></li>
    <li><a href="#" onclick="BShameMenu2(this);">Group 3</a></li>
</ul>
<script>
    function BShameMenu() {
        jQuery('#lk1ul').toggle();
    }
    function BShameMenu2(el) {
        if (jQuery('#lk1ul').is(':visible')) { jQuery('#lk1').click(); }
        jQuery('#ulnav li').removeClass('active');
        jQuery(el).parent().addClass('active');
    }
</script>