0

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

//= 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

该代码在引导之前工作。使用有什么问题noConflict()?我们还需要添加noConflict()到 /views/layouts/application.html.erb 吗?感谢帮助。

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

在此处输入图像描述

4

1 回答 1

1

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

但是 jquery-ui 和 bootstrap 之间存在冲突,这已通过http://addyosmani.github.io/jquery-ui-bootstrap/上的项目得到缓解。

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

于 2013-05-11T04:41:30.537 回答