Eas*_*per 8 ruby-on-rails twitter-bootstrap
在我的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>
Run Code Online (Sandbox Code Playgroud)
在我的gemfile中,我有以下内容:
gem 'twitter-bootstrap-rails'
gem 'bootstrap-datepicker-rails'
Run Code Online (Sandbox Code Playgroud)
在我的views\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>
Run Code Online (Sandbox Code Playgroud)
Admin_menu在其他地方定义为:Admin_menu = Hash.new Admin_menu ["Papers"] ="/ papers"Admin_menu ["Tracks"] ="/ tracks"Admin_menu ["出勤"] ="/出勤"
当我点击插入符号时,没有任何反应.我检查了HTML代码,下拉菜单选项就在那里.
有任何想法吗?
Pau*_*rth 13
您需要更改以下行:
<%= 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" %>
Run Code Online (Sandbox Code Playgroud)
对此:
<%= javascript_include_tag "https://js.stripe.com/v1/" %>
<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
您当前的代码多次包含application.js,这对于Bootstrap的下拉代码来说是一个问题.我敢打赌,如果你查看你的application.js文件,你会看到它接近顶部:
//= require bootstrap
Run Code Online (Sandbox Code Playgroud)
这意味着每次包含application.js时都会加载一次bootstrap,然后再从github加载.
如果您阅读Bootstrap的Dropdown JS代码,您会看到它添加了一个点击监听器来切换下拉菜单.如果您运行此代码两次,则添加两个单击侦听器.所以在每次点击时,这两个听众都会打开菜单并突然再次关闭它.
我有一个类似于你的问题,我没有注意到我javascript_include_tag的Stripe也重新包括在内application.我想我们可能会从同一个地方复制/粘贴!
| 归档时间: |
|
| 查看次数: |
7772 次 |
| 最近记录: |