メシのタネ

めしのたねになるIT情報配信サイト


【jQuery】プログラム動かない時に確認すること

,

  1. Webプログラム
  2. javascript
  3. jQuery
  4. 【jQuery】プログラム動かない時に確認すること

jQueryを勉強したての頃、よくjQueryのエラーに苦しめられました。読み込まれているかどうかって不安ですよね。自分が昔そうだったので、困ってる人いるんじゃないかと思って書きます。自分がJSのプログラムを導入するにあたってやっている事を書いてみようかなと思います。 意識する点は、読み込みの順番と、ファイルの確認です。

この記事を読むメリット
  • jQueryが動かない問題を解消できる可能性がある点
  • jQueryが動かない問題の原因を追究する手段が分かる点
  • jQueryが動作する仕組みが分かる点

jQueryが読み込まれない問題で良くあるケース

私が一番良く見かけるものは、jQueryが読み込まれる前にjQuery関連の機能を利用しようとするケースをよく見かけます。jQueryが読み込まれた後でないと、jQueryを利用することができません。 このケースでは、下記のようなエラーがでます。

Uncaught ReferenceError: jQuery is not defined

jQueryで未定義の関数を利用しようとしたというエラー

これはjQueryに限らず、関数の未定義で発生するエラーになります。どんなエラーメッセージかというと、下記のようなエラーになります。

Uncaught ReferenceError: hoge is not defined at :1:1

これにはいくつかの原因があるので、その原因を下記に示したいと思います。

これの原因は色々ありますが、いくつかあげてみます。
  • 関数名を間違える可能性
  • 必要なファイルが読み込まれていない可能性
  • バージョンが違うプログラムが読み込まれている可能性

jQueryで気を付けるということというか、プログラミングする際に気を付けることがが上記3項目になります。

jQueryの関数名を間違える可能性

自分が初学者の時は「俺は絶対に間違えないぜ。」と思っていましたが、今では何かエラーがあると真っ先に記述間違いを疑います。そのくらい打ち間違いは頻度の高いので、トラブルシュートの中で優秀な部類に入ると思います。これを「typo(タイポ)」と言い、未然に防ぐためには、しっかり確認するか、IDE(統合開発環境)を利用するという手が考えられます。統合開発環境とは、これ一本でプロジェクトができるといったツールになります。例えば、コーディング、ファイル転送、DB操作、テストの作業に対して、バラバラのツールを利用している人もいると思いますが、これらを1個のツールで全てできるようにするのが統合開発環境です。

  • Point.1 打ち間違い(Typo)はよくある
    真っ先に疑い、該当箇所を確認しよう。

  • Point.2 打ち間違いを防ぐにはIDEを利用しよう
    打ち間違いを防ぐには、確認をしっかりする以外にツールで防ぐという手段もある

  • Point.3 IDEとはワンストップで開発できるツール
    ツールをバラバラに利用する必要がなく、1個のツールで全てを利用できる。

必要なファイルが読み込まれていない

test.jsとtest1.jsという2種類のファイルがあるとします。test.jsからtest1.jsの関数を利用する場合、jQueryの読み込みエラーでも記述しましたが、test1.jsから読み込む必要があります。なぜなら、test1.jsの関数をtest.jsから利用する際に、参照する関数が無いからです。

バージョンが違うプログラムが読み込まれている可能性

これは本人が意図しない場合が往々にあります。例えば、自作していないテンプレートやWordPressで言えばテーマを利用してWebサイトを作成した際に起こりがちなのですが、テンプレートなり、テーマなりで予めjQueryが読み込まれているのに気が付かずに、自分のjQueryを読み込んでしまう場合です。これが発生すると、jQueryを2つ読み込むことになります。処理速度的にもよくないですし、定義されていない関数を利用してしまう可能性が上がるので、これも確認した方が良い項目になります。

[getpost id=”2318″]

余談になりますが、これが発生する原因として、javascriptを、Webサイトの末尾で読み込む派と先頭で読み込む派が居ます。これについて、お互いのメリットを挙げていきます。

先頭からJSを読む派

  • JSの記述個所をheadにまとめたい場合に便利
  • ロードイベントの定義が必要になる

末尾からJSを読む派

  • JSの記述個所をCSSと同じに書くことができない
  • ロードイベントの定義が不要

作業者の趣向性を理解すれば、自分がテンプレート、テーマを利用している際に、jQueryが動かない際に、何処をどんな意図でチェックすれば良いかが分かります。

とはいえ、作業者の趣向性を想定するには、慣れが必要だったりするので、書籍等で勉強してみてはいかがでしょうか。jQueryであれば、MDN社の出している本が、図がいっぱい載ってて分かりやすいです。

>> jQueryデザインブック 仕事で絶対に使うプロのテクニック

読んでる記事が古い

jQueryやライブラリなどは、記事が古いと古いバージョンで有効だった関数を利用している場合があります。公開されているプログラムはセキュリティ保護の為、後方互換を考えられずやむなく機能の改修を行ったりすることが、割と普通にあります。なので、無償のプログラムをプロジェクトに利用していて、インターネットの記事を参考に実装を行う場合、その記事がいつ書かれた物なのかにも注力するのが良いと思われます。

一般的かは分かりませんが、choromeデベロッパツールのコンソールを利用して、jQuery呼び出してみるテストをしてます。画像の様にアラートが表示されたらOKなのではないでしょうか。


“【jQuery】プログラム動かない時に確認すること” への3件のフィードバック

  1. […] “https” だと jQuery が動かない時には 【jQuery】プログラム動かない時に確認すること […]

  2. あのアバター

    貼ってあるソースコード一度ご覧になったほうがいいですよ…
    役に立ちましたのでご報告です…

    1. mikadukiのアバター
      mikaduki

      なるほど・・・
      えらいことになってますね。なおしておきます。

へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

若い頃、「仕事中にハマったこと」や「誰かに共有したい技術的な気づき」をアウトプットしたくてブログを始めましたが、勢い任せでよく分からない記事を大量生産し、あえなく飽きて終了。

改めて今、キャリア15年分の経験や知識が、これからITエンジニアを目指す方や、同じような課題で悩んでいる現役エンジニアの「メシのタネ」になるような記事を残したいと思っています。
※過去の記事は見ると精神が崩壊するため、そっとしておいてください。

🛠 経歴という名の珍道中:
文系Fラン → 広告営業 → Web営業 → 通信営業 → Web進行 → 出版 → Web媒体運用 → ソフトウェアハウス → SES → フリーランス

専門教育も受けず、転職歴も多数。履歴書はまるで時系列の事故記録のようですが、試行錯誤を重ね、なんとかエンジニアとして食べています。

このブログでは、そんな「履歴書クラッシャー型エンジニア」が送る、
名古屋一敷居の低い、実務に役立つ技術ブログを目指します。

Laravel
belongsToMany 実戦ガイド ── “withPivot”で追加カラムを守る 中間テーブル設計チェックリストNew!!
PHP
魔王と行く! / Interface / Polymorphism / Ontology 深淵ガイドNew!!
Laravel
Laravel 12、「コード 1 行も書き換えず未来へ」──静かな革命の手順書New!!
Laravel
LaravelのMiddlewareって意味あるの?仕組み・使いどころ・やらかしまで整理してみたNew!!
Laravel
ServiceProviderって何してるの?DIの背後で動いてるやつの正体
Laravel
LaravelのサービスコンテナとDI、「書いてるだけで動く」コードの正体