【发布时间】:2012-08-08 14:46:46
【问题描述】:
在我的 application.html.erb 中,我有以下内容:
<head>
<title><%= title %></title>
<%= stylesheet_link_tag "application", media: 'all' %>
<%= javascript_include_tag "application" %>
<%= javascript_include_tag "https://js.stripe.com/v1/", "application" %>
<%= csrf_meta_tags %>
<%= tag :meta, :name => "stripe-key", :content => STRIPE_PUBLIC_KEY %>
<%= javascript_include_tag "http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js", "application" %>
<%= render 'layouts/shim' %>
</head>
在我的 gemfile 中,我有以下内容:
gem 'twitter-bootstrap-rails'
gem 'bootstrap-datepicker-rails'
在我的观点\layouts_header.html.erb 中,我有:
<li class="dropdown" id="admin_menu">
<a class="dropdown-toggle" data-toggle="dropdown" data-target="#admin_menu">
<%= ADMIN_TITLE %>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<% Admin_menu.each do |menu_text, menu_action| %>
<li><a href="<%= menu_action %>"><%= menu_text %></a></li>
<% end %>
</ul>
</li>
Admin_menu 在别处定义为: Admin_menu = Hash.new Admin_menu["论文"] = "/论文" Admin_menu["曲目"] = "/曲目" Admin_menu["出席"] = "/出席"
当我点击插入符号时,什么也没有发生。我检查了 HTML 代码,下拉菜单选项在那里。
有什么想法吗?
【问题讨论】:
-
当您单击下拉菜单时(或在此之前,例如页面加载时)是否出现任何 Javascript 错误?另外,您是否有理由将您的
application.js包含三遍?您在所有javascript_include_tag调用中都引用了它——您只需要它一次。我很确定这不会导致这个问题,但修复它不会有什么坏处。 -
是的,你是对的。我清理了 application.js 包含的内容。我没有看到任何 javascript 错误。当我将鼠标悬停在插入符号上时,插入符号从灰色变为黑色,但没有任何反应。当我将鼠标悬停在管理菜单上时,选择器也不会变为手形。
-
尝试将
href="#"添加到下拉链接本身(具有dropdown-toggle类的链接)。 -
将 data-target="#admin_menu" 更改为 href="#admin_menu" 确实产生了变化。当光标悬停在插入符号或管理员上时,它会变为手形,但仍然没有下拉菜单
-
我也有同样的问题,如果我删除 Stripe 的
<script>元素,下拉菜单就会开始工作。
标签: ruby-on-rails twitter-bootstrap