javascript - 无法使用 ruby​​ (link_to) 方法使用 Bootstrap 可切换选项卡

标签 javascript ruby-on-rails ruby twitter-bootstrap

我在获取 Bootstrap 时遇到困难 togglable tabs使用 link_to View 辅助方法来工作的元素。这是我想要实现的 Bootstrap 代码:

<div role="tabpanel">
  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
  </div>

</div>

我尝试了以下方法,但没有得到成功的结果:

<div role="tabpanel">
	<ul id="my_menu a" class="nav nav-tabs" role="tablist">
	  <li role="presentation" class="active"><%= link_to "Main", root_path, :role => "tab", :data => {:toggle => "tab"} %></li>
	  <li role="presentation"><%= link_to "Profile", profile_path, :role => "tab", :data => {:toggle => "tab"} %></li>
	  <li role="presentation"><%= link_to "Projects", projects_path, :role => "tab", :data => {:toggle => "tab"} %></li>
	</ul>
</div>

<script>
$('#my_menu a').click(function (e) {
  e.preventDefault()
  $(this).tab('show')
})
</script>

我可以显示选项卡,但单击它们时没有任何反应。我希望问题足够清楚。预先非常感谢!

最佳答案

我发现有一个更简单的替代解决方案:

您可以使用 ruby​​ link_to 帮助程序将基本类添加到菜单项周围的所有元素,然后使用 ruby​​ 帮助程序函数将事件类添加到您当前所在的页面。这意味着选项卡会显示并正确突出显示。

例如在您的 nav.html.erb 部分中:

<nav class="container-fluid">
      <ul class="nav nav-tabs">
        <li class="<%= cp(root_path)%>" role="presentation"><%= link_to "Home", root_path %></li>
          <li class="<%= cp(user_list_path)%>" role="presentation"><%= link_to "All users", user_list_path, class: cp(user_list_path) %></li>
          <li class="<%= cp(my_profile_path)%>" role="presentation"><%= link_to "#{current_user.username}", my_profile_path %></li>
      </ul>
    </nav>

以及您的application_helper.rb

def cp(path)
      "active" if current_page?(path)
    end

关于javascript - 无法使用 ruby​​ (link_to) 方法使用 Bootstrap 可切换选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024443/

相关文章:

asp.net - Type 和 Sys not defined JavaScript 错误

ruby-on-rails - 无法通过 Intuit 应用中心连接到 Quickbooks | Playground

ruby-on-rails - 如何在创建对象之前修改参数

html - 如何连续点击满足特定条件的链接?

javascript - Jade/Pug 中更清晰的混合

javascript - kwicks slider 加载但鼠标悬停不起作用

mysql - 如何在 Ruby on Rails 中创建 tinyint(2) 或 tinyint(3) 类型的列?

ruby-on-rails - 调试 Cucumber 步骤定义

javascript - 如何使用 Node.js 和 Express 分块发送 HTML?

ruby-on-rails - 时间戳在时间戳范围内比较?