Jquery RubyonRails DOM更新只在页面重新加载后才起作用

Jquery RubyonRails DOM更新只在页面重新加载后才起作用,jquery,css,ruby-on-rails,Jquery,Css,Ruby On Rails,我正在根据当前路由更新html元素的类名。我还有一些jquery,可以在单击元素时显示菜单。当我在主页上时,html类被正确地添加到html元素中,菜单在单击时被正确地显示。但是,当我通过单击导航链接导航到另一条路线时,路线会正确更改,但html类名不会更新,jquery也不会再启动 应用程序\u helper.rb application.html.erb 尝试用下面的代码包装jQuery。这个问题很可能是由Turbolinks引起的,Turbolinks会加载页面,您可以使用AJAX单击这些

我正在根据当前路由更新html元素的类名。我还有一些jquery,可以在单击元素时显示菜单。当我在主页上时,html类被正确地添加到html元素中,菜单在单击时被正确地显示。但是,当我通过单击导航链接导航到另一条路线时,路线会正确更改,但html类名不会更新,jquery也不会再启动

应用程序\u helper.rb

application.html.erb


尝试用下面的代码包装jQuery。这个问题很可能是由Turbolinks引起的,Turbolinks会加载页面,您可以使用AJAX单击这些页面以加快速度。因此,这个包装器告诉Javascript在turbolinks加载时启动,而不是在整个页面刷新时启动

$(document).on('turbolinks:load', function() {
  $('#initials').click(function() {
    $('.slider, .nav-btn').toggleClass('closed');
  })
});

你在用TurboLink吗?是的,我是rails的新手,谢谢你的帮助。很好!这对jQuery有效,对css有类似的操作吗?没有,只是使用Javascript。
<html class="<%= yield(:html_class) || '' %>"> <!-- class is only updated on page reload -->
<% html_class 'nail' %>
<!-- no html_class provided, should default to '' -->
<div class="row projects">
  <% @projects.each do |project| %>
    <%= render project %>
  <% end %>
</div>
$(function() {
  $('#initials').click(function() {
    $('.slider, .nav-btn').toggleClass('closed');
  })
});
$(document).on('turbolinks:load', function() {
  $('#initials').click(function() {
    $('.slider, .nav-btn').toggleClass('closed');
  })
});