1. 程式人生 > >Jquery-Uncaught ReferenceError: $ is not defined報錯

Jquery-Uncaught ReferenceError: $ is not defined報錯

在我的jsp頁面上有這些js程式碼:

[java] view plain copy  print?
  1. //載入資料
  2.     $(document).ready(function() {  
  3.         var param={};  
  4.         param.page=3;  
  5.         param.size=10;  
  6.         $.post(home+"/user/queryAllInfo",param,  
  7.             function(result)  
  8.             {  
  9.                 if(result !=null
     && result.success)  
  10.                     {  
  11.                         var obj =result.rows;  
  12.                         for ( var i = 0; i < obj.length; i++) {  
  13.                             var user =obj[i];  
  14.                             var tr = "<tr><td>"
  15.                                 + user.MEMBERNAME  
  16.                                 + " </td>  <td>"
  17.                                 + user.ACCOUNTNUMBER  
  18.                                 + " </td>  <td>"
  19.                                 + user.AGE  
  20.                                 + " </td>  <td>"
  21.                                 + user.GENDER  
  22.                                 + " </td>  <td>"
  23.                                 + user.BIRTHDAY  
  24.                                 + " </td>  <td>"
  25.                                 + user.MEMBER_LABEL  
  26.                                 + " </td>";  
  27.                             $(".userTable").append(tr);  
  28.                         }  
  29.                     }else
  30.                         {  
  31.                         alert(result.msg);  
  32.                         }  
  33.         },"json"
  34.         );  
  35.     });    
  36. function onOK()  
  37. {  
  38.     alert("OK?");  
  39.     $("#loaddiv").text("ok");  
  40. }  

當訪問這個頁面時,google瀏覽器按F12 會提示Uncaught ReferenceError: $ is not defined 錯誤,並提示是 $(document).ready(function() {   是這行出錯。

猜想: 1.以為是引入的jQuery.js 檔案版本的不匹配,更換後還是出錯。

2.有以為是匯入的其他js檔案產生衝突導致的。

3. jquery.js檔案的路徑錯誤。

4. 載入js檔案的順序的問題,又把jquery.js放到第一位。

上面幾種方法還是提示出錯。

接著在頁面 添加了一個 onOK()事件,裡面有$("#loaddiv").text("ok");  發現這個可以沒有問題,所以覺得應該不是jquery.js的錯誤。

把程式碼放到 onOk函式中:如下

[java] view plain copy  print?
  1. function onOK()  
  2. {  
  3.     alert("OK?");  
  4.     var param={};  
  5.     param.page=3;  
  6.     param.size=10;  
  7.     $.post(home+"/user/queryAllInfo",param,  
  8.         function(result)  
  9.         {  
  10.             if(result !=null && result.success)  
  11.                 {  
  12.                     var obj =result.rows;  
  13.                     for ( var i = 0; i < obj.length; i++) {  
  14.                         var user =obj[i];  
  15.                         var tr = "<tr><td>"
  16.                             + user.MEMBERNAME  
  17.                             + " </td>  <td>"
  18.                             + user.ACCOUNTNUMBER  
  19.                             + " </td>  <td>"
  20.                             + user.AGE  
  21.                             + " </td>  <td>"
  22.                             + user.GENDER  
  23.                             + " </td>  <td>"
  24.                             + user.BIRTHDAY  
  25.                             + " </td>  <td>"
  26.                             + user.MEMBER_LABEL  
  27.                             + " </td>";  
  28.                         $(".userTable").append(tr);  
  29.                     }  
  30.                 }else
  31.                     {  
  32.                     alert(result.msg);  
  33.                     }  
  34.     },"json"
  35.     );  
  36.     $("#loaddiv").text("ok");  
  37. }  

發現沒有出現之前的Uncaught ReferenceError: $ is not defined 錯誤,而是提示 406 (Not Acceptable) ,百度查詢後406 (Not Acceptable)後才知道原來在controller控制層用到了@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