jQueryは順番が大事ということを学んだ話。

はじめに

昨日完成出来なかったミニアプリ、出来なかったのは自分だけなのでめちゃくちゃ悔しい!

せめてお手本の通りにでも完成させたい!

当初の予定通りform_withとhamlを使って書くぞい!

 

で、詰まったところと解決方法を書きたいと思います。

 

MaterializeCSSのFormが動かない

実装したかった機能 

MaterializeCSSのFormに入力した際にlabelが上にスライドする。

f:id:novalis222:20190331230306g:plain

発表会で他の方が実装してるの見て、オシャレじゃん?真似したろ!と思ったけど実装してみると

レイアウトが崩れて上にスライドしてくれない問題が発生

f:id:novalis222:20190331231201g:plain

jQueryがどうやら働いてないっぽい。

でもなんで?ってtwitterで呟いてたらEXPERT卒業生のしょうみゆさんからこんなアドバイスを頂きました。

 なるほど!!!!!

デベロッパーツールで確認すると

Uncaught ReferenceError: $ is not defined at materialize.min.js:6というエラーを吐いて たことを確認。

エラー文をググると、jQueryの要素を使うjsファイルが先に来てしまっているのでエラーを吐いている 従って、jQueryを最初に読ませるように、つまり一番上にjqueryを読むよう書けばOK

参考サイト http://siganaitohoho.hatenablog.jp/entry/2014/07/02/000330

とのことなのでjQueryCDNを一番上に持ってくると・・・

 

f:id:novalis222:20190331232556g:plain

動いた!

カリキュラムの流れ的にMaterializeのCDNをコピペした次にjQueryCDNをコピペするから、なんも考えないとjQueryの記述が後になっちゃったんですね。

明日書く予定のもう一つの詰まりポイントもそうなんですけど、デベロッパーツールを確認することは本当に大事なんだなぁ、と実感しました。

しょうみゆさん、本当にありがとうございました。