TaillookTech

フルスタックエンジニアになる

Rails5でTurbolinksとjQuery(document).ready()

Rails5でjQueryのreadyが動かなかった

ajaxとかの処理をするTurbolinksのがあるため$(document).ready()が発火しない.
Rails4での手法では動かなかった.

解決

StackoverflowとQiitaでそれらしきものを見つけた.

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

Rails5でTurbolinksの挙動が変わってた。 - Qiita

コード例

以下の手法でjQueryが動く.

# ページ切り替え時(初回ページも対象)
$(document).on('turbolinks:load', function() {
  //ページ切り替え後にさせたい処理
});

# ページ切り替え時(初回ページは対象外)
$(document).on('turbolinks:render', function() {
  //ページ切り替え後にさせたい処理
});

# ページ遷移前
$(document).on('turbolinks:request-start', function() {
  //ページ遷移前にさせたい処理
});