1. ホーム
  2. javascript

[解決済み] jQuery $.cookie は関数ではありません。

2022-01-31 12:14:39

質問

jQueryを使ってCookieを設定しようとしています。

$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));

しかし、私のページを読み込むと、エラー "$.cookie is not a function" が発生します。以下は、私が知っていることです。

  • jQuery cookieプラグインをダウンロードしました。 こちら .
  • jQueryとTHENのCookieプラグインにリンクしています。
  • jQueryとjQuery.cookieはどちらも200 OKで正しく読み込まれています。

他の回答もいくつか見てみましたが( こちら こちら それに対して、ほとんどの人がcookie.jsファイルの名前を変更することを提案しました。私はCookieファイルの名前を変更しました "jquery.cookeee.js" しかし、結果は同じです。

何が起こっているのか、何か思い当たることはありませんか?

参考になるなら、私はMVC 4でWebアプリケーションを作成しています。

どのように解決するのですか?

ここでは、私が遭遇したすべての可能な問題/解決策を紹介します。

1. Cookieプラグインをダウンロードする

$.cookie はjQueryの標準機能ではないので、プラグインをダウンロードする必要があります。 こちら . 適切な <script> タグが必要です(次を参照)。

2. クッキープラグインの前にjQueryをインクルードする

クッキースクリプトをインクルードする場合、必ずjQueryを最初にインクルードし、次にクッキープラグインをインクルードしてください。

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>
<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>

3. jQueryを複数回インクルードしない

これは私の問題でした。jQueryを複数回インクルードしていないか確認してください。もしそうなら、その可能性があります。

  1. jQueryが正しく読み込まれる。
  2. Cookieプラグインが正しく読み込まれます。
  3. 2回目のjQueryのインクルージョンが1回目を上書きし、Cookieプラグインを破壊します。

ASP.Net MVC プロジェクトを使用している人は、デフォルトの javascript バンドルインクルージョンの扱いに注意してください。私が2回目にjQueryをインクルードしたのは、グローバルレイアウトページの1つで、次の行の下でした。 @Scripts.Render("~/bundles/jquery") .

4. プラグインファイルの名前を変更し、".cookie"を含まないようにする。

まれに、ファイル名を ".cookie" を含まないものに変更すると、このエラーが修正されることがありますが、これは明らかにウェブサーバーの問題によるものです。デフォルトでは、ダウンロードしたスクリプトのタイトルは "jquery.cookie.js" ですが、上記のように "jquery_cookie.js" などにリネームしてみてください。この問題についての詳細は こちら .