1. ホーム
  2. javascript

[解決済み] JQuery - $が定義されていない

2022-03-18 18:52:27

質問

シンプルなjqueryクリックイベントを持っています

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

と、site.master で定義された jquery の参照。

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

スクリプトが正しく解決されていることを確認しました。マークアップを見ることができ、firebugで直接スクリプトを見ることができるので、見つかっているはずです。しかし、私はまだ取得しています。

が定義されていません。

と表示され、どのjqueryも動作しません。また、以下のような様々なバリエーションを試してみました。 $(document).ready とjQueryなど。

.net 3.5上のMVC 2アプリです。私が本当に鈍感であることは確かですが、グーグルではどこでも、ファイルが正しく参照されていることを確認するようにと書かれています。:/

解決方法は?

そのエラーは、3つのうちの1つしか原因がありません。

  1. JavaScriptファイルがページに正しく読み込まれていません。
  2. jQueryのバージョンに不具合がある。 これは、誰かがコアファイルを編集したか、プラグインが$変数を上書きしたために起こる可能性があります。
  3. ページが完全に読み込まれる前に JavaScript が実行され、その結果、jQuery が完全に読み込まれる前に実行されています。

まず、どのようなスクリプトが正しく呼び出されているかを確認し、次のような状態になっていることを確認します。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

という属性があり、それを持つべきではない 非同期 または 繰り延べる .

次に ファイアバグ ネット パネルで、ファイルが実際に正しく読み込まれているかどうかを確認することができます。 読み込まれていない場合は、赤くハイライトされ、横に "404"と表示されます。 ファイルが正しく読み込まれている場合、問題は2番であることを意味します。

すべてのjQueryのjavascriptコードが、次のようなコードブロックの中で実行されていることを確認してください。

$(document).ready(function () {
  //your code here
});

これは、あなたのコードがロードされていることを確認するものです jQueryが初期化されました。

最後に確認することは、プラグインを読み込んでいないことです。 以前 を読み込んでください。 プラグインは "$"オブジェクトを拡張するので、jQueryコアをロードする前にプラグインをロードすると、説明したようなエラーが発生することになります。

注意してください。 jQuery の実行を必要としないコードを読み込む場合は、jQuery ready ハンドラ内に配置する必要はありません。そのようなコードは document.readyState .