将一些rjs和原型代码转换为纯JQuery

时间:2011-05-23 07:54:56

标签: jquery ruby-on-rails ruby ruby-on-rails-3 rjs

因此,这个railscast中的以下代码可以动态添加嵌套模型表单的字段:

这是在应用程序助手中:

def link_to_add_fields(name, f, association)
  new_object = f.object.class.reflect_on_association(association).klass.new
  fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
    render(association.to_s.singularize + "_fields", :f => builder)
  end
  link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"))
end

这是javascript函数:

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).parent().before(content.replace(regexp, new_id));
}

现在我很好奇你将如何更改所有这些代码,以便你可以完全依赖于JQuery而没有原型或rjs。

1 个答案:

答案 0 :(得分:0)

这里唯一与Prototype相关的是link_to_function调用。它的作用是在调用onclick函数的name文字上创建add_fields处理程序。

因此,要成为纯jquery,您应该使用$().click (function (){...})方法。但是,确切的实现方式会有所不同,具体取决于您是要在html文件中插入javascript还是不引人注意地调用它。