Rails

Railsでリンクで移動した際等、画面遷移時にJavascript(jquery)が動かない場合

Railsで画面遷移時にJavascriptが動かない

ナビバーのリンクをクリックしたときになぜか移動した自サイトでjavascript(jquery)が動かなくて困った。
再読み込みすれば動くんだけど、対処方法があったので試してみた。

デフォルトで、turbolinksというものが動いているため、$(document).ready()、や$(window).load が動かないみたい。
そりゃだめだ('Д')

環境
■OS
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

■Rails
# rails -v
Rails 5.1.6

Rails5では、
$(document).ready()、や$(window).loadじゃなくて、
例えば
$(window).load(function( )});

$(document).on('turbolinks:load', function() { });
に変更してあげればいい。

今回は、画面をふわっと出すこのコードを

$('head').append(
    '<style type="text/css">body {display:none;}'
);
$(window).load(function() {
    $('body').delay(600).fadeIn("slow");
});

ピンクマーク部分を以下に変更した。

$('head').append(
    '<style type="text/css">body {display:none;}'
);
$(document).on('turbolinks:load', function() {
    $('body').delay(600).fadeIn("slow");

 });

変更後、ページ遷移してみても問題なくjavascriptが動作した。
これはひっかかるなあ。。。

-Rails