繁体   English   中英

jQuery line函数未定义

[英]jQuery line function is not defined

我在这行$(this).before($(this).data('daw_preguntaes').replace(regexp, time));}有一个TypeError: $(...).data(...) 我正在使用Railscast 196,但是此功能不会加载我要显示的新字段。 我不知道要在data(fields)放入什么

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

浏览视图

<%= f.fields_for :questions do |builder| %>
  <%= render 'questions_fields', f: builder %>
<% end %>
<%= link_to_add_fields "New question",f,:questions  %>

问题检视

<fieldset>
    <%= f.label :content, 'Question' %>
    <%= f.text_area :content %>
    <%= f.check_box :_destroy %>
    <%= f.label :_destroy, "Delete" %>
</fieldset>

在RailsCasts#403中,Ryan使用CoffeeScript文件中的编辑代码。 我将_questions_fields命名为_question_fields

CoffeeScript

$(document).on 'click', 'form .remove_fields', (event) ->
  $(this).prev('input[type=hidden]').val('1')
  $(this).closest('fieldset').hide()
  event.preventDefault()

$(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()

帮手

def link_to_add_fields(name, f, association)
    new_object = f.object.send(association).klass.new
    id = new_object.object_id
    fields = f.fields_for(association, new_object, child_index: id) do |builder|
        render(association.to_s.singularize + "_fields", f: builder)
    end
    link_to(name,'#', class: "add_fields", data: {id: id, fields: fields.gsub("\n","")}) 
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM