Turbolinksを使っているときに$(windows).on('turbolinks:load')で初回読み込みが維持される

久々の投稿になります。

railsにてwebアプリ全体にjsを適用したいときに、$(windows).on('load',function(){…})とすると初回読み込みだけにしか発火しなかったためハマったので、その解決策のメモです

TL;DR

  • Gemにturbolinksを読み込んでいる場合、$(windows).on('load',function(){…})$(windows).on('turbolinks:load',function(){…})にすると解決するかも

gemにturbolinksを読み込んでいる場合、on('load')では読み込み時しか働かず、ページ遷移などをすると効かなくなる。

$(windows).on('load', function () {
    $('.drawer').drawer();
})

on('turbolinks:load')とするとページ遷移してもjsが働きます

$(document).on('turbolinks:load', function () {
    $('.drawer').drawer();
})

参考

https://qiita.com/jkr_2255/items/ba6bfc59457ea12a76ff