8

私の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'

私の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>

Admin_menu は別の場所で次のように定義されています: Admin_menu = Hash.new Admin_menu["Papers"] = "/papers" Admin_menu["Tracks"] = "/tracks"

キャレットをクリックしても何も起こりません。HTML コードを確認したところ、ドロップダウン メニューの選択肢が表示されています。

何か案は?

4

2 に答える 2

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" %>

これに:

<%= javascript_include_tag "https://js.stripe.com/v1/" %>
<%= javascript_include_tag "application" %>

現在のコードにはapplication.jsが何度も含まれていますが、これはBootstrapのドロップダウンコードの問題です。application.jsファイルを見ると、上部に次のように表示されます。

//= require bootstrap

つまり、application.jsをインクルードするたびにブートストラップをロードしてから、githubから再度ロードすることになります。

BootstrapのドロップダウンJSコードを読むと、ドロップダウンメニューを切り替えるためのクリックリスナーが追加されていることがわかります。このコードを2回実行すると、2つのクリックリスナーが追加されます。したがって、クリックするたびに、これらの2人のリスナーがメニューを開き、突然再び閉じます。

私はあなたと同じような問題を抱えていました。そこでは、私javascript_include_tagのforStripeも再び含まれていることに気づきませんでしapplicationた。おそらく同じ場所からコピー/貼り付けしたと思います!

于 2012-08-30T15:29:36.890 に答える
0

FirebugまたはChrome拡張機能を使用して、ブラウザでhtmlを確認します。正しくない場合は、ヘルパーを使用して文字列をいじらないようにしてください。

<li><%= link_to menu_text, menu_action %></li>

于 2012-08-08T15:35:18.203 に答える