etsuxのブログ

自分がハマったことなどを記録しています。

Rails&Turbolinks有効でページ読み込み時にJavaScriptを実行するには

RailsでTurbolinksを有効にしていると[戻る]リンクでページを戻った時などに、ページロード時のイベントで実行するはずのスクリプトが実行されない。

いろいろ調べてもどれも簡潔にできないと思っていたら、できることがわかった。

javascript - Rails 5: how to use $(document).ready() with turbo-links - Stack Overflow

 

「turbolinks:load」を追加するだけですね...簡単。

readyがあると二重に実行されてしまうので「turbolinks:load」を設定するだけですね。

 

app/assets/javascripts/xxx.coffee

$(document).on 'ready turbolinks:load', ->

$(document).on 'turbolinks:load', ->

 

これだとブラウザの「戻る」ボタンではうまく動かなかった...

難しい。悩ましい。