2011-09-16 10 views
1

私はちょうど愚かな質問のように見えますが、私はJSので謝罪を学ぼうとし始めたが、私は少し失われています。私はFlickrのページを削り取った一連のイメージを持っているので、Lightboxを追加してJSでの経験を試してみたので、the GitHub pageからインストールして、application.jsに追加する手順に従ってください:Rails 3&FancyBox

//= require jquery 
//= require fancybox 

そして、私のcustom.cssに追加する:

/* 
*= require_self 
*= require fancybox 
*= require_tree . 
*/ 

は、私は、持っている:部分で

<script type = "text/javascript"> 
$(document).ready(function() { 

/* This is basic - uses default settings */ 

$("a.flickr_photo").fancybox({'type': 'image'}); 

}); 
</script> 

を、作成された画像のセットに呼び出す:

<%= link_to(image_tag(p.url, :class => 'flickr_photo', :title => p.title, :border => 0), p.url_photopage) %> 

私はちょっと立ち往生していますが、実際には何もしませんが、どちらもエラーではありません。

答えて

1

Prototypeから$という識別子が競合している可能性があります(標準のRoRプロトタイプコードを削除しなかったと仮定しています)。 PrototypeはjQueryに似たJavascriptライブラリであり、RoRにバンドルされています。問題は、$もjQueryと同じように使用されているため、起きるのはすべて$がPrototypeの関数または変数として試行されることです。

  • それは先に他のjQueryコードのロード、実際のjquery.jsファイルの後になる箇所にjQuery.noConflict();を追加します。これは、私はいくつかのイメージのためのjQueryのスライダーを使用私のアプリでそれを固定する方法です。どのjQuery .jsファイルが最初に読み込まれているかを調べ、ファイルの先頭に置いてください。
  • 次に、ご使用のjQueryコードのすべてのビットを$からjQueryを使用するように変更する必要があります。これを行うには、jQuery .jsファイルの好きなテキストエディタでfind/replaceを使います。
  • を取り除くれ、あなたはおそらく把握することができますように、これは$からjQueryにjQueryの識別子を変更し、すべての将来のjQueryコードはjQuery代わりの$(すなわち、jQuery("#id_of_element").show();代わりの$("#id_of_element").show();

を使用していることを確認しますPrototypeとの競合。私が診断で正しければ、それはあなたの問題を解決するはずです!

+0

プロトタイプのものが競合を引き起こしていました。一度それを分けてしまえば、すべてがもっとスムーズになりました、恩恵を受けました! –