复选框更改事件仅在重新加载页面后触发

Checkbox change event only fire after reloading page



我正在 Rails 上使用 Ruby 编写一个应用程序,我有一个表单,如果复选框被选中,它会显示某个 <div>,如果不是,我添加 style="display:none:" 到 rails。通过 Coffeescript 和 JQuery,我也在更改时切换相同的 <div>

咖啡脚本:

jQuery ->
  $(document).ready ->
    $("#hasUser").change ->
      $("#userPart").toggle();
      return
    return
  return

HTML:

    <div class="form-group">
        <%= contato_form.label :hasUser, :class => 'inline-checkbox' do %>
          Possui usuário <%= contato_form.check_box :hasUser, :id => 'hasUser' %>
        <% end %>
    </div>
</div><!-- Closing from uncopied code -->
<div id="userPart" class="findMe" <% if @contato.usuario.id.blank? %> style="display:none;" <% end %>>
  <h2> Usuário: </h2>
  <div class="container">
    <%= contato_form.fields_for :usuario do |usuario_form| %>
      <%= render partial: 'usuarios/campos_usuario', locals: {form: usuario_form} %>
    <% end %>
  </div>
</div> 


这里的问题是,当我使用 Create 的表单时,一切运行良好,但在 Edit 上,Coffeescript 仅在重新加载后运行。

这是一个 turbo 链接问题。在尝试 运行 其余代码之前,我必须检查 turbo-links 是否已正确加载。

jQuery ->
  $(document).ready ->
    $(document).on 'turbolinks:load', #Added line
      $("#hasUser").change ->
        $("#userPart").toggle();
        return
      return
    return
  return