0

$.noConflict()との間の競合を解決するために、application.jsrails 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_fieldsapplication.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 とブートストラップの間に競合はありません。逆に、jquery はブートストラップが機能するための要件です。

しかし、jquery-ui とブートストラップの間に競合があり、これはhttp://addyosmani.github.io/jquery-ui-bootstrap/のプロジェクトによって軽減されています。

とにかく、上記のコードは noConflict を呼び出さなくても動作するはずだと思います。

于 2013-05-11T04:41:30.537 に答える