0

私はインターネットを調べて、この質問に対するいくつかの指示を見つけました:

Rails3でのjQueryプラグインの使用

http://ridingwithrails.wordpress.com/2011/12/28/rails-3-1-installing-lightbox-jquery-plugin/

これがまさに私がJqueryプラグインをRailsにインストールするために行うことです。コンソールの新しいメソッドにアクセスできません。(エラーが発生しました。関数は存在しません)

1-プラグインをダウンロードして、次の場所に配置します。

vendor/assets/javascripts/plugin.js

2-application.jsのファイルへのパスを追加します。

//= require jquery
//= require jquery_ujs
//= require plugin 
//= require_tree . 

3-それが当てはまる場合、私はcssについても同じことをします。(cssフォルダー内)

私が試したいくつかのプラグインは次のとおりです。jquery-cookiejquery-star-ratingしかし、それは決して機能しません。私は何を間違っているのですか?

答えてくれてありがとう

編集:ビューのソースを確認すると、プラグインの* .jsファイルが含まれていますが、これらのプラグインの関数を使用しようとすると、たとえば次のようになります。

[17:18:59,927] TypeError: $.cookie is not a function 
4

1 に答える 1

4

問題が正確にどこにあるかをデバッグするために、次のことを試してください。

  1. plugin.jsファイルの先頭でグローバル関数を定義し、コンソールから呼び出してみてください。(ここでalert()を呼び出すだけで、同様の結果が得られます)。この関数を呼び出すことができる場合は、プラグインファイルが主張どおりに含まれています。そうでない場合は、アセットパスがオフになっている可能性があるため、config/application.rbにこのような行を追加してみてください

    config.assets.paths << Rails.root.join("Vendor", "assets", "javascripts")
    
  2. javascriptコンソールを開いた状態でChromeまたはFirebugでページを開き、javascriptエラーがないことを確認します。エラーが原因でプラグインが正しくロードされていない可能性があります。

  3. 最も単純なプラグイン(http://docs.jquery.com/Plugins/Authoringなど)を使用してみてください。それが機能する場合、問題は使用しようとしている特定のプラグインにあります。

  4. プラグインをドキュメントレディブロック内にラップしてみてください。DOMを配置する必要がある場合があります(注:最適化されていないページの読み込みが発生する可能性があるため、これは常に推奨されるわけではありませんが、試してみる価値があります)

    $(function() {
      // put the plugin code here
    });
    
  5. $プロトタイプなど、名前空間で使用する他のJavaScriptを読み込んでいますか?

  6. これはバニラレールアプリですか、それとも大きくて複雑なアプリですか?後者の場合は、最小限の失敗例で問題を再現できるかどうかを確認してください。

于 2012-08-11T13:12:13.107 に答える