私は私のRailsアプリが使用するjQueryのアドオンの数を持っている上でjQueryの拡張をロードに失敗しました。ほぼすべてのページで、jQuery.cookies拡張機能を使用して、特定の要素を表示するかどうかを判断します。IEは、特定のページ
このアドインは、もともと資産/ JavaScriptの下に独自のファイルで、次のマニフェストを使用してロード:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_self
//= require_directory . //there is a subdirectory i'm ignoring, but jquery.cookies isn't in it
のInternet Explorerでは、jquery.cookies.jsは以外に必要なすべてのページに評価されました。 cookies
オブジェクトがjQuery
に添加されていなかった2つの。次のコードを評価したとき、それは「オブジェクトはこのプロパティまたはメソッドをサポートしていません」などのエラーを投げていた影響を受けたページで
javascript_include_tag('application')
、これらのページは私のアプリ上の他のページと同じJavaScriptを含まクッキーの方法に関する:$(document).ready()
を呼び出す前に
if ($.cookie("showHero") == 'true' || $.cookie("showHero") == null) {
$('#hero').css('display', 'block');
} else {
$('#hero').css('display', 'none');
}
、application.jsの先頭にjQuery.cookies.jsの内容を移動すると、この症状を緩和するとJavaScriptが正しく実行できるようにするようだが、私は怖いです私は本当の問題を解決していません。
これは、プリコンパイルされた資産を開発・生産の両方で発生します。
これらのページのどちらがページに固有だ任意のJavaScriptを紹介し、なぜjQuery.cookiesは、このような狭い場合に評価することができないのでしょうか?複数の異なるjavascriptファイルを処理するための規約がありますか?私は逃した可能性があることを認識していませんか?
編集
私はそれを取り戻します。 jquery.cookiesの内容をapplication.jsに移動すると、ページが初めて読み込まれたときに動作するように見えます。後続のリロードは同じ動作を示します。完全な損失。