【问题标题】:Bootstrap dropdown not working in some viewsBootstrap 下拉菜单在某些视图中不起作用
【发布时间】:2018-02-14 20:42:10
【问题描述】:

我正在努力让我的下拉菜单正常运行。我直接从 Twitter Bootstrap 指南(v3)中提取了下拉模板,并根据我的目的对其进行了调整。该应用程序是在 Sinatra 中构建的,下拉菜单的代码位于我的布局视图中。菜单在与布局处于同一级别的任何视图中都可以正常工作,但是当从位于子目录中的任何视图中单击下拉菜单时,单击它只会在 URL 的末尾附加一个 # 并且菜单不会下降下。

<li class="dropdown">
    <a data-target="#" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"  aria-haspopup="true" aria-expanded="false">Campaigns  <span class="caret"></span></a>
    <ul class="dropdown-menu">
      <% current_user.campaigns.each do |campaign| %>
        <li><a href="/campaigns/<%= campaign.slug %>"><%= campaign.name %></a></li>
        <% end %>
        <li role="separator" class="divider"></li>
        <li><a href="/campaigns/new">New Campaign</a></li>
      </ul>
    </li>

非常感谢任何帮助!

【问题讨论】:

  • 向我们展示一个有效的 sn-p
  • 我是堆栈溢出的新手,因此我为疏忽道歉。但是我似乎无法让 sn-p 正常运行,因为我的视图是用 erb 而不是原始 HTML 编码的。如果我遗漏了什么,请告诉我!
  • 把你得到的任何东西,我都会修好它并让它工作
  • 抱歉延迟回复。为了更好地了解问题所在,您还想看什么?我发布的 sn-p 最初适用于直接位于我的 /views 目录(我的 layout.erb 也位于其中)内的任何视图。下拉列表不再适用于 /views 的任何子目录中的任何视图。目标是在导航栏中有一个单级下拉菜单,可从任何页面访问,它从当前用户的广告系列动态生成其

标签: html twitter-bootstrap-3 sinatra erb


【解决方案1】:

如果您正在寻找,请使用 jQuery 进行多级下拉菜单。

将您的下拉数据替换为此。

$(document).ready(function() {
  $('.dropdown-submenu a.test').on("click", function(e) {
    $(this).next('ul').toggle();
    e.stopPropagation();
    e.preventDefault();
  });
});
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<div class="container">
  <div class="dropdown">
    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">MENU
    <span class="caret"></span></button>
    <ul class="dropdown-menu">
      <li><a tabindex="-1" href="#">List 1</a></li>
      <li><a tabindex="-1" href="#">List 2</a></li>
      <li class="dropdown-submenu">
        <a class="test" tabindex="-1" href="#">Dropdown <span class="caret"></span></a>
        <ul class="dropdown-menu">
          <li><a tabindex="-1" href="#">2nd level dropdown</a></li>
          <li><a tabindex="-1" href="#">2nd level dropdown</a></li>
          <li class="dropdown-submenu">
            <a class="test" href="#">Another dropdown <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="#">3rd level dropdown</a></li>
              <li><a href="#">3rd level dropdown</a></li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </div>
</div>

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签