1. ホーム
  2. javascript

Jquery-Uncaught ReferenceError: $が定義されていないエラー

2022-02-15 16:18:21

私のjspページには、次のようなjsコードがあります。

//loading data
  	$(document).ready(function() {
  		
		var param={};
		param.page=3;
		param.size=10;
	
		$.post(home+"/user/queryAllInfo",param,
			function(result)
			{
				if(result ! =null && result.success)
					{
						var obj =result.rows;
						
						for ( var i = 0; i < obj.length; i++) {
							
							var user =obj[i];
							
							var tr = "<tr><td>"
								+ user.MEMBERNAME
								+ " </td> <td>"
								+ user.ACCOUNTNUMBER
								+ " </td> <td>"
								+ user.AGE
								+ " </td> <td>"
								+ user.GENDER
								+ " </td> <td>"	
								+ user.BIRTHDAY
								+ " </td> <td>"						
								+ user.MEMBER_LABEL
								+ " </td>";
							
							$(".userTable").append(tr);
						}
						
					}else
						{
						alert(result.msg);
						}
			
		},"json"
		);
		
	});  
  	
  	
function onOK()
{
	alert("OK? ");
	
	
	$("#loaddiv").text("ok");
}





このページにアクセスすると Google ChromeはF12を押すと、Uncaught ReferenceError: $ is not definedエラーとなり、$(document).ready(function() {がエラーになっているこの行であることを示唆するメッセージが表示される。

推測:1.導入したjquery.jsファイルのバージョンの不一致と思い、置き換えてもエラーが発生した。

2. インポートした他のjsファイルによるコンフリクトが発生していると思われます。

3. jquery.js ファイルのパスが正しくありません。

<スパン 4. jsファイルの読み込み順序に問題があり、jquery.jsを再度最初に置く。

上記の方法のうち、いくつかの方法はまだエラーを表示します。

そして、$("#loaddiv").text("ok")でページにonOK()イベントを追加しました。これは問題なく動作することが分かったので、jquery.jsのエラーではないと思います。

<スパン onOk関数にコードを入れる:ここ

function onOK()
{
	alert("OK? ");
	
	var param={};
	param.page=3;
	param.size=10;

	$.post(home+"/user/queryAllInfo",param,
		function(result)
		{
			if(result ! =null && result.success)
				{
					var obj =result.rows;
					
					for ( var i = 0; i < obj.length; i++) {
						
						var user =obj[i];
						
						var tr = "<tr><td>"
							+ user.MEMBERNAME
							+ " </td> <td>"
							+ user.ACCOUNTNUMBER
							+ " </td> <td>"
							+ user.AGE
							+ " </td> <td>"
							+ user.GENDER
							+ " </td> <td>"	
							+ user.BIRTHDAY
							+ " </td> <td>"						
							+ user.MEMBER_LABEL
							+ " </td>";
						
						$(".userTable").append(tr);
					}
					
				}else
					{
					alert(result.msg);
					}
		
	},"json"
	);
	
	$("#loaddiv").text("ok");
}





先ほどのUncaught ReferenceError: $ is not definedのエラーのかわりに  406 (受け付けられません) Baiduで406 (Not Acceptable)を調べた結果、@ResponseBodyがコントローラ制御層で使われていることに気づきました。  オブジェクトをjson形式に変換する必要があり、変換依存のjarパッケージが足りず、後から jackson-xc-1.8.3.jar , jackson-mapper-asl-1.9.2.jar jackson-core-asl-1.9.2.jar , jackson-jaxrs-1.8.3.jar , json-lib-2.4-jdk15.jar これらのパッケージで、プログラムは正常に動作するようになりました。

 json パッケージのダウンロード: http://download.csdn.net/detail/u013147600/9023171