的Rails:引导和下拉不工作
在我application.html.erb,我有以下几点:的Rails:引导和下拉不工作
<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,我有: Admin_menu =有:
<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如别处定义h.new Admin_menu [ “期刊论文”] = “/论文” Admin_menu [ “曲目”] = “/磁道” Admin_menu [ “出席”] = “/出勤”
当我点击插入符,什么都没发生。我检查了HTML代码,并选择了下拉菜单。
任何想法?
您需要更改这些行:
<%= javascript_include_tag "application" %>
<%= javascript_include_tag "https://js.stripe.com/v1/", "application" %>
<%= javascript_include_tag "http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js", "application" %>
这样:
<%= javascript_include_tag "https://js.stripe.com/v1/" %>
<%= javascript_include_tag "application" %>
您当前的代码中包含多次application.js,这对Bootstrap的下拉代码是个问题。如果你在你的application.js文件看我敢打赌,你会看到这个靠近顶部:
//= require bootstrap
这将意味着你每次包括的application.js时间一旦加载引导,然后再从github上。
如果您阅读Bootstrap的Dropdown JS代码,您会看到它将点击侦听器添加到切换的下拉菜单中。如果你运行这段代码两次,你将添加两个点击监听器。所以在每次点击时,这两个听众打开菜单并突然关闭它。
我有一个类似于你的问题,我没有注意到我的javascript_include_tag
条纹也重新包括application
。我想我们可能从同一个地方复制/粘贴!
谢谢。这工作! – EastsideDeveloper 2012-08-31 15:08:13
它也包括了我的两次javascript。经过多次搔抓之后,我在应用程序布局的底部也找到了javascript_include_tag。 – 2012-09-13 19:32:00
你有没有机会在你的应用中加入turbolinks?我从application.js中删除了它,它解决了我的问题。 – 2013-07-02 21:32:02
使用Firebug或Chrome扩展在浏览器中检查html。如果它是不正确尝试使用助手,以避免与字符串搞乱:
<li><%= link_to menu_text, menu_action %></li>
在我的问题中,我提到HTML很好,下拉菜单选择在那里。 – EastsideDeveloper 2012-08-08 16:21:02
当您点击下拉菜单(或在此之前,例如页面加载时)时是否出现任何Javascript错误? 另外,是否有一个原因,你包括你的'application.js'三次?您已在所有'javascript_include_tag'调用中引用它 - 您只需要它一次。我很确定这不会导致这个问题,但它不会修复。 – BaronVonBraun 2012-08-08 15:47:26
是的,你说得对。我清理了application.js包括。我没有看到任何javascript错误。当我悬停在上面时,脱字符号从灰色变成黑色,但没有任何反应。当我将鼠标悬停在管理菜单上时,选择器也不会变成手形。 – EastsideDeveloper 2012-08-08 16:19:25
尝试将'href =“#”'添加到下拉链接本身(具有'dropdown-toggle'类的链接)。 – BaronVonBraun 2012-08-08 16:21:44