所以我正在使用Bootstrap下拉菜单:
%ul.hidden-xs.hidden-sm
%li= link_to "LIBRARY", library_path
%li= link_to "PRICING", plans_and_pricing_path
%li.dropdown
.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown"}= link_to "#{current_user.first_name} <i class='fa fa-caret-down'></i>".html_safe, '#'
%ul.dropdown-menu
%li= link_to 'Edit profile', edit_user_registration_path(resource), class: 'user-nav-li'
%li= link_to 'Referrals', referrals_path, class: 'user-nav-li'
%li= link_to "LOG OUT", destroy_user_session_path, method: :delete
有时它会起作用,有时却不起作用。单击下拉列表时,我已经尝试查看检查器中的元素(在它不工作的时间),我可以看到事件触发。 %li.dropdown
应该添加open
类,而aria-expanded
应该从true
更改为false
。这是它工作时会发生的事情。但是,当它不起作用时,元素保持不变,只需在检查器(Chrome)中简单地突出显示,就像元素在更改时一样。
这告诉我JS正在加载,因为它至少响应了click事件。但没有其他事情发生。
我试过寻找模式。刷新有时会修复它,但其他时候会触发问题。有时导航到不同的页面会修复它,但有时却没有。并且没有一个页面表现一致。我想无论如何都应该没关系,因为它在我的导航栏中并且在应用程序级别上。
我不确定还有什么可以尝试的。一切似乎都很随意。
旁注:我不是JavaScript专家
答案 0 :(得分:2)
正如我所说,罪魁祸首是turbolinks
。添加gem jquery-turbolinks
应该可以解决问题。
#Gemfile
gem 'jquery-turbolinks'
并运行bundle install