【问题标题】:Dropdown selection doesnt change div content下拉选择不会改变 div 内容
【发布时间】:2015-06-03 14:09:31
【问题描述】:

当我从下拉菜单中选择不同的选项时,我试图让 div 内的内容发生变化。在此之前,我在 div 中有标签,但它们看起来很丑,所以我放弃了它们,改为使用下拉菜单。我将让下拉菜单引用一个地图或网格,以便用户稍后在我开始工作时通过它。

工作代码:http://codepen.io/MarkBond/pen/aOJLqm

HTML:

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<div class="row">
  <div class="col-lg-12">
    <div class="ibox float-e-margins">
      <div class="ibox-title">
        <h5>Elements Map </h5>
        <div class="ibox-tools">
          <button class="btn btn-default dropdown-toggle btn-xs btn-purple" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
            Views
            <span class="caret"></span>
          </button>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
            <li class="active" role="presentation"><a role="menuitem" tabindex="-1" href="#1">Map</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="#2">List</a></li>
          </ul>
          <button type="button" class="btn btn-green btn-xs" data-toggle="modal" data-target="#myModal">Reset All</button>
          <div class="modal fade" id="myModal" role="dialog">
            <div class="modal-dialog">
              <div class="modal-content">
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal">
                    <span class="glyphicon glyphicon-remove"></span>
                  </button>
                  <h4 class="modal-title">Element Map</h4>
                </div>
                <div class="modal-body">
                  <p>Are you sure?</p>
                </div>
                <div class="modal-footer">
                  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
              </div>
            </div>
          </div>
          <button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#myModal">
            <span class="glyphicon glyphicon-fullscreen"></span>
          </button>
          <div class="modal fade" id="myModal" role="dialog">
            <div class="modal-dialog">
              <div class="modal-content">
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal">
                    <span class="glyphicon glyphicon-remove"></span>
                  </button>
                  <h4 class="modal-title">Element Map</h4>
                </div>
                <div class="modal-body">
                  <p>Some text in the modal.</p>
                </div>
                <div class="modal-footer">
                  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
              </div>
            </div>
          </div>
          <a class="collapse-link">
            <i class="fa fa-chevron-up"></i>
          </a>
        </div>
      </div>
      <div class="ibox-content">
        <div class="active" id="1">
          Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero. Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt
          condimentum vitae, gravida a libero. Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero. Lorem ipsum dolor sit amet, charetra varius quam sit amet
          vulputate. Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero. Lorem ipsum dolor sit amet, charetra varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero. Lorem
          ipsum dolor sit amet, charetra varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt condimentum vitae, gravida a libero.
        </div>
        <div id="2">
          Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue. Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue. Secondo sed ac
          orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue. Secondo sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue. Secondo sed ac orci
          quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue.
        </div>
      </div>
    </div>
  </div>
</div>

CSS:

    .btn-green {
    background-color:#33CC33;
    color: #FFFFFF;
}

.btn-blue {
    background-color:#3333FF;
    color: #FFFFFF;
}

.btn-purple {
    background-color:#CC00FF;
    color: #FFFFFF;
}

.nav-dropdown-style {
    font-weight: 600;
    padding: 4px 12px;
    margin: 14px 5px 5px 20px;
    font-size: 14px;
    float: right;
    background: #1ab394;
}

.nav-dropdown-style:hover {
  background: #199d82;
}

【问题讨论】:

  • 你考虑写js代码来做这个吗?这会相对容易:)
  • 使用 javascript 会更容易。您可以在更改功能中搜索下拉菜单并相应地隐藏和显示 div
  • 我正在考虑使用 js,但我对它不是很熟悉。

标签: javascript html css twitter-bootstrap drop-down-menu


【解决方案1】:

如果您能够编写 Javascript,则此解决方案将起作用:

// Get all list options
var listOptions = $('ul.dropdown-menu > li > a');

// Attach "click" event
listOptions.click(function(ev) {
  var href = $(this).attr('href');

  // Find divs with content
  var divToShow = $(href);
  var contentDivs = divToShow.parent().find('.content');

  contentDivs.removeClass('active');
  divToShow.addClass('active');
});

我稍微调整了代码。 Codepen 可在此处获得:http://codepen.io/anon/pen/XbMeoK。请注意,我也对 CSS 做了一些小改动。

【讨论】:

  • 谢谢 它有效,但我在页面上的其余内容遇到问题。我在网页上多了一个 div,其中大约 3 个有一个应该做同样的下拉菜单。现在他们每个人都没有内容,当我从下拉列表中选择一个选项时,它会将屏幕向下拖动到它。
  • 注意使用“活动”类。仅显示具有“活动”类的内容,因此您必须将“活动”添加到默认显示内容的 div(请仔细查看添加的 CSS 类)。我建议添加更多描述性的类/ID 来区分每个组。还有一件事——为了让这个例子起作用,内容 div 的每个 id 应该是不同的。至于下拉菜单 - UL 和按钮应该在一个“div”标签中关闭,例如
  • 我从标签页中发现了一些旧代码,这些旧代码弄乱了它,所以它们现在默认显示。当我从向下选择时,它仍然会清除所有其他 div。我确实在它自己的 div 中有下拉列表和列表,但它似乎推动了应该在它旁边的所有其他按钮,在它下面。我用所有页面代码更新了 codepen,这样你就可以看到我在谈论什么。 codepen.io/MarkBond/pen/aOJLqm
  • 这是调整后的codepen:codepen.io/anon/pen/bdqaYr。至于按钮 - 您可以向它们添加“float:left”参数。请仔细查看更改:)
  • 非常感谢 Szyb,你给了我比我要求的更多。我将您的答案标记为正确!我仍然无法显示“治疗”、“效率”和“摘要”(因为它们只是空白),但我希望自己能解决。谢谢:)
猜你喜欢
  • 2011-09-04
  • 2022-12-15
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多