シンプルな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 アプリです。私が本当に鈍感なのは確かです。Google のどこでも、ファイルが正しく参照されていることを確認するように言われています。何度も確認しましたが、アドバイスをお願いします。:/
ベストアンサー1
このエラーは、次の 3 つのうちのいずれかによって発生します。
- JavaScript ファイルがページに正しく読み込まれていません
- jQuery のバージョンが間違っています。これは、誰かがコアファイルを編集したか、プラグインが $ 変数を上書きしたために発生する可能性があります。
- ページが完全に読み込まれる前に、つまり jQuery が完全に読み込まれる前に、JavaScript が実行されます。
まず、どのスクリプトが正しく呼び出されているかを確認します。次のようになります。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
また、属性asyncまたはdeferを持つことはできません。
次に、ファイアバグ netパネルで、ファイルが実際に適切に読み込まれているかどうかを確認します。適切に読み込まれていない場合は、赤く強調表示され、その横に「404」と表示されます。ファイルが正しく読み込まれている場合は、問題が 2 であることを意味します。
すべての jQuery JavaScript コードが次のようなコード ブロック内で実行されていることを確認します。
$(document).ready(function () {
//your code here
});
これにより、 jQuery が初期化された後にコードが読み込まれるようになります。
最後に確認すべきことは、 jQuery をロードする前にプラグインをロードしていないことを確認することです。プラグインは "$" オブジェクトを拡張するため、jQuery コアをロードする前にプラグインをロードすると、説明したエラーが発生します。
注意: jQueryの実行を必要としないコードをロードする場合は、jQueryのreadyハンドラ内に配置する必要がありません。そのコードは次のように分離できます。document.readyState
。