[解決済み] Rails、link_toヘルパーをクリックした後にjavascriptがロードされない
質問
railsでlink_toヘルパーを使用する際、javascriptの読み込みに問題があります。localhost:3000/products/new」でurlを手入力するか、ページを再読み込みするとjavascriptが読み込まれますが、下記のようにリンクを通すと、jQueryの
$(document).ready
は新しいページでは読み込まれません。
Link_to、このリンクをクリックしてもjavascriptが読み込まれません。
<%= link_to "New Product", new_product_path %>
products.jsファイル
$(document).ready(function() {
alert("test");
});
どんな助けでも、とても感謝します。ありがとうございました。
どのように解決するのですか?
Rails 4を使用していますか?
rails -v
を実行してください)
この問題は、おそらく新しく追加された
ターボリンク
gem のせいだと思われます。 これは、アプリケーションをシングルページの JavaScript アプリケーションのように動作させるものです。 これにはいくつかの利点があります (
より高速になる
のような既存のイベントを壊してしまいます。
$(document).ready()
のような既存のイベントを壊してしまいます。 このことは、JavaScript が URL を直接読み込んだときには動作するが
link_to
.
ここでは RailsCast のTurbolinksについてです。
いくつかの解決策があります。 あなたが使用できるのは
jquery.turbolinks
を使うか、あるいは
$(document).ready()
ステートメントを、代わりにTurbolinksの
'page:change'
イベントを使用します。
$(document).on('page:change', function() {
// your stuff here
});
また、Turbolinksだけでなく、通常のページロードとの互換性を保つために、このようなこともできます。
var ready = function() {
// do stuff here.
};
$(document).ready(ready);
$(document).on('page:change', ready);
Ruby on Rails >5を使用している場合(以下のコマンドを実行することで確認できます)。
rails -v
を実行することで確認できます)。
'turbolinks:load'
の代わりに
'page:change'
$(document).on('turbolinks:load', ready);
関連
-
[解決済み] 同じURLの画像を新しいものに更新する
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み] 配列が空か存在するかをチェックする
-
[解決済み】Rails 4:ターボリンクで$(document).ready()を使用する方法
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] Rails 5: $(document).ready() をターボリンクで使用する方法