2011-05-23 9 views
0

所以這是從這個railscast下面的代碼字段中的動態添加嵌套的模型形式:把一些RJS和原型代碼純JQuery的

這是在應用助手:

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和無親靠單純totype或rjs。

回答

0

這裏唯一的原型相關的東西是link_to_function調用。它的作用是通過name文本創建onclick處理程序,該文本調用您的add_fields函數。

所以要純jQuery你應該用$().click (function(){...})方法來代替。但是,確切的實現將取決於您是否要在您的html文件中插入javascript或不顯眼地稱呼它。