とあるプログラマーの覚書

WordPress編:jQueryの$関数を使ったときの「オブジェクトを指定してください」エラーの対策

スポンサーリンク

前回同様、WordPressに関するトピックです。

自分が管理しているWordPressのブログで、とある機能を実現したくて、それを実現する手段としてjQueryを用いる事にしたのですが、この記事のタイトルにあるように「オブジェクトを指定してください」というエラーが発生するという問題に出くわしました。

私は、jQueryに関しては完全初心者なのですが、jQueryでは、「$関数」と呼ばれる関数が利用できるという事は、jQuery経験者であればご存じかと思います。

それで、WordPressで構築されている私のブログのヘッダー部に、以下のようなコードを記述しました。


$(document).ready(function(){
  var o = $(“#maincontents”);
  $(window).scroll(function() {
    ~省略~
  });
});


上記はサンプルなので、処理自体の意味は無視して下さい。
jQueryでは、上記のサンプルコードのように、「$」記号を利用して記述する事が出来ます。
ですが、どういうわけか、「オブジェクトを指定してください」というスクリプトエラーが発生…。
(ちなみに、私は、ブラウザはIE9を使い、インターネットオプションで「スクリプトエラーごとに通知を表示する」という設定にしていました。他のブラウザでの検証はしていません。)

エラーの詳細を見てもよくわからず、コメントアウトしたりしてエラーの発生状況を検証したところ、どうも「$」を使っている行が怪しい。
と思って、jQuery関連の色んなサイトを見て回って、サイトによっては、「$」ではなく「jQuery」と記述している場合もある事に気づきました。
で、先程のコードを下記のように書き換えてみたところ、、、


jQuery(document).ready(function(){
  var o = jQuery(“#maincontents”);
  jQuery(window).scroll(function() {
    ~省略~
  });
});


スクリプトエラーが発生しなくなり、無事に処理が行われるようになりました。
何故かなぁと思って調べてみたところ、以下のページを見つけました。
WordPressでjQueryを使うときに、問題なく動作させる為の基礎知識やTipsと、動かない場合の対処例
WordPressでは、様々なプラグインをインストールしてカスタマイズする事が出来るのですが、プラグインによっては「prototype.js」というJavascriptライブラリを使うものがあるようです。
で、その「prototype.js」にも、jQueryと同様、「$」を使って記述する事が出来るようです。
それが原因で、「$」を記述した場合に、定義がぶつかってしまってエラーになってしまう、というような感じのようです。
というわけで、「$」ではなく「jQuery」と記述したら動くようになった、というのは、正しい対応方法と見てよいかと思いました。

今回は、jQueryに関わる内容なので、記事のカテゴリーを「WordPress」とするか、「jQuery」または「JavaScript」にするか迷いましたが、上記のように、WordPressだから発生する問題と言えるかと思いましたので、WordPressのカテゴリにしました。(WordPressじゃなくても、同じ条件が整えば、発生する問題でしょうケド。)

今回は以上です。


スポンサーリンク

URL :
TRACKBACK URL :

Leave a Reply

*
* (公開されません)

*

*

Return Top