$.noConflict()
已添加到application.js
主应用中的rails 3.2.12
,以解决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()
添加到/views/layouts/application.html.erb?谢谢你的帮助。
更新: 以下是新客户页面的标题:
答案 0 :(得分:1)
jquery和bootsrap之间没有冲突,相反,jquery是bootstrap工作的必要条件。
但是jquery-ui和bootstrap之间存在冲突,http://addyosmani.github.io/jquery-ui-bootstrap/的项目已经缓解了这种冲突。
无论如何,我认为上面的代码应该可以在不调用noConflict的情况下工作。