RailsでjQueryのfadeOutを使おうと思ったらエラーが起きた


やろうとしたこと

RailsのflashメッセージをjQueryでフェードアウトさせたい!と思い、以下の記事を参考にしてjQueryを導入しました。

そして、以下のように実装しました、

<script type="text/javascript">
  $(function() {
      setTimeout($('#フェードアウトさせたい要素').fadeOut('slow'), 2000);
  });
</script>

エラー

しかし、上手くフェードアウトせず。

コンソール画面を見てみると以下のようなエラーが出ていました。

このエラーを解決するべくGoogleで調べてみたところ、以下のような記事が出てきました。

この記事によれば、slim版のjQueryを使っているのが良くないとのこと。

しかし、jQueryを導入する際にslim版を指定した覚えもなければ、どうやって変更するのかもわかりませんでした。

そこで、色々と自分の書いたコードを確認していたところ、このviewファイルの一番下に以下のような記述がありました。

index.html.erb
#省略
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>

どうやら、過去の自分がCDNのslim版jQueryを読み込んでいたようです。しっかりしろよ…。

この記述を消したところ、無事にフェードアウトさせることができました。