Coffeescript 没有切换我的 div

Coffeescript is not toggling my div

当我点击我的 表单 Link href 时,我可以看到我的网页在 name[=23] 的显示和隐藏之间快速切换=] 文本字段。

我希望 name 文本字段在单击 Form Link 按钮后保持显示。

我曾尝试将 toggle() 更改为 show(),同样的事情发生在我无法让 name 文本字段保持显示的地方。

# app/views/forms/form.html.erb
<%= link_to 'Form Link', '#', class: 'form-link' %>
<div class="form-group">
  <div class="col-sm-1"><%= form.label :name, class: 'control-label' %></div>
  <div class="col-sm-1"><%= form.text_field :name, class: 'form-control' %></div>
</div>

# app/assets/stylesheets/forms.scss
.form-group {
  display: none;
}

# app/assets/javascripts/forms.coffee
$(document).on 'turbolinks:click', ('.form-link'), ->
  $('.form-group').toggle()

如果您想在单击 link 时简单地切换 div 的可见性,那么您应该能够简单地监听 link 上的点击并防止确保 turbolinks 不会重新加载页面的默认行为。 那应该可以解决您看到的问题。当您单击 link 时,您的脚本会显示表单,但 turbolinks 会跟随 link(即 #,因此它只是重新加载页面)。

例如:

$(document).on 'click', '.form-link', (e) ->
  e.preventDefault() # prevent link from being followed
  $('.form-group').toggle()

您可以在这里尝试:https://jsfiddle.net/u9hngeo4/1/