如何使用JQuery.noConflict()来修复rails 3.2.12中JQuery和bootstrap之间的冲突?
$.noConflict()
被添加到rails 3.2.12
主应用application.js
中的application.js
中,以解决jquery
和bootstrap
之间的冲突。 但它没有按预期工作。 这是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的情况下工作。