文系大学生がエンジニアを目指すブログ

Qiitaに書くまでもないメモ的な存在

Railsのturbolinksでjavascriptが発火しない問題の解決策

$(document).on 'turbolinks:load', ->をつける

$(document).on 'turbolinks:load', ->
 $('#hogehoge').click ->
   alert "clicked hogehoge"

page:loadを使う

ready = ->
  $('#hogehoge').click ->
     alert "clicked hogehoge"

$(document).ready(ready)
$(document).on('page:load', ready)

jqueryの'ready'とTurbolinksの'page:load'の両方カバーできる。

非Turbolinks遷移時は'ready'で発火、Turbolinks遷移時は'page:load'で発火の両方をカバーするという意味。

Turbolinksをサポートしていないブラウザでも'ready'が発火するので安心。 jquery-turbolinksというgemを使うと'ready'triggerにpage:loadを追加してくれる。