如何使用JQuery.noConflict()来修复rails 3.2.12中JQuery和bootstrap之间的冲突?

$.noConflict()被添加到rails 3.2.12主应用application.js中的application.js中,以解决jquerybootstrap之间的冲突。 但它没有按预期工作。 这是application.js:

 //= require jquery //= require jquery_ujs //= require jquery-ui //= require_tree . //= require bootstrap $.noConflict(); 

单击新客户表单上的add_more_contact链接时,firebug中出现错误:

 ReferenceError: add_fields is not defined 

add_fields是application.js中定义的js函数:

 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)); } 

调用add_fields是通过application_controller.rb中的方法完成的:

 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 :partial => association.to_s, :locals => {:f => builder, :i_id => 0} end link_to_function(name, "add_fields(this, \"#{association}\", \"#{j fields}\")") end 

代码在bootstrap之前工作。 使用noConflict()什么问题? 我们还需要在noConflict()中添加noConflict()吗? 感谢帮助。

更新:这是新客户页面的标题:

在此处输入图像描述

jquery和bootsrap之间没有冲突,相反,jquery是bootstrap工作的必要条件。

但是jquery-ui和bootstrap之间存在冲突,这已经被http://addyosmani.github.io/jquery-ui-bootstrap/上的一个项目所缓解。

无论如何,我认为上面的代码应该可以在不调用noConflict的情况下工作。