【问题标题】:Converting some rjs and prototype code to pure JQuery将一些 rjs 和原型代码转换为纯 JQuery
【发布时间】:2011-05-23 07:54:56
【问题描述】:

因此,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。

【问题讨论】:

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


    【解决方案1】:

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

    所以要成为纯 jquery,您应该改用 $().click (function (){...}) 方法。然而,具体的实现会有所不同,具体取决于您是要在 html 文件中插入 javascript 还是不显眼地调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2015-01-03
      • 2011-07-24
      • 2020-09-29
      相关资源
      最近更新 更多