jQueryは問題なく発動するけど、ページを遷移すると発動しなくなる。しかしページの再読み込みをするとちゃんと動いてくれる問題
『環境』
- ruby:2.6.6
- rails:6.0.3.2
今回の悪の根源
それはturbolinks
turbolinksって美味しいの??
なんとなくは聞いたことがあったけど理解してなくて調べてみた。
どうやらturbolinksはページの遷移を早くしてくれる便利なヤツらしい
なんで早くなるん??
なぜ早いかと言うと、ページを遷移するときに全部のファイルを読み込んで遷移するわけじゃなくて、HTMLのbody要素だけを取っ替えて読み込んでくれているから早くなってくれているみたい。
つまり
ページを遷移するときにjavascriptファイルは読み込んでおらず、ページ遷移するとjQueryが発動しなくなっていたようだ。そこからページの再読み込みをすると、ようやくjavascriptファイルを読み込んでjQueryが発動したという流れ。
とりあえずturbolinksには休んでもらいましょう
qiita.rb
require("@rails/ujs").start()
# require("turbolinks").start() ← コメントアウト
require("@rails/activestorage").start()
require("channels")
require('jquery')