Rails嵌套模型表单:加载而不是单击

时间:2016-03-07 13:01:43

标签: javascript ruby-on-rails coffeescript nested-forms

所以我有点击方法来添加嵌套表单,它完美无缺。

$(document).on 'click', 'form .add_fields', (event) ->
  time = new Date().getTime()
  regexp = new RegExp($(this).data('id'), 'g')
  $(this).before($(this).data('fields').replace(regexp, time))
  event.preventDefault()

但onload我需要触发上面的envent一次然后点击它也应该触发事件。所以我添加了下面的代码

$(document).on 'click', 'form .add_fields', (event) ->
  time = new Date().getTime()
  regexp = new RegExp($(this).data('id'), 'g')
  $(this).before($(this).data('fields').replace(regexp, time))
  event.preventDefault()

$(document).on 'load', 'form .add_fields', (event) ->
  time = new Date().getTime()
  regexp = new RegExp($(this).data('id'), 'g')
  $(this).before($(this).data('fields').replace(regexp, time))
  event.preventDefault()

在上面添加load事件后的事件,它不会触发事件。但是在点击事件仍然有效并且完美地添加嵌套表单。我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:0)

好的,您的活动不对,需要page:load,因{turbieinks'而导致load无法工作。你也在重复自己......让我给你一个更好的实施:

addNewNestedItem = ->
    $('form .add_fields').on 'click', (event) ->
        time = new Date().getTime()
        regexp = new RegExp($(this).data('id'), 'g')
        $(this).before($(this).data('fields').replace(regexp, time))
        event.preventDefault()

$(document).ready addNewNestedItem
$(document).on 'page:load', addNewNestedItem

以上肯定会奏效,而且写得很好。