$(document).ready(function()不起作用

Rom*_*omi 22 html jquery json

我正在使用Jquery从solr服务器获取json对象.当我用Tomcat运行我的html文件时它运行得很好但是当我将它嵌入我在weblogic上运行的项目时会出现这个错误:(通过firebug完成调试)

$ is not defined
$(document).ready(function(){  
Run Code Online (Sandbox Code Playgroud)

当我将它嵌入项目中时,为什么会出现此错误?

这是我的<head>标签的内容,这是我如何包含jquery.js:

<head>
  <title>Search Result  </title>
  <style>
    img{ height: 150px; float: left; border: 3;}
    div{font-size:10pt; margin-right:150px;
    margin-left:150px; }
  </style>

  <script type="text/javascript" src="jquery-1.6.1.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){       //Error happens here, $ is not defined.

    });
  </script>
</head>
Run Code Online (Sandbox Code Playgroud)

Dan*_*mov 27

你在head部分加载jQuery了吗?你装的是正确的吗?

<head>
   <script src="scripts/jquery.js"></script>
   ...
</head>
Run Code Online (Sandbox Code Playgroud)

此代码假定jquery.jsscripts目录中.(如果您愿意,可以更改文件名)

您还可以使用Google托管的 jQuery :

<head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
   ...
</head>
Run Code Online (Sandbox Code Playgroud)

根据你的评论:

显然,您的Web服务器未配置为jQuery-1.6.1.js在请求时返回/webProject/jquery-1.6.1.js.这可能有很多原因,例如错误的文件名,文件夹名称,路由设置等.您需要创建另一个问题并404更详细地描述您(例如本地文件名,操作系统,网络服务器名称和设置).

同样,您可以使用Google提供的jQuery(参见上文),但是您仍然可能想知道为什么某些本地文件无法按要求提供服务.


小智 13

我发现有时需要使用noConflict:

jQuery.noConflict()(function ($) { // this was missing for me
    $(document).ready(function() { 

       other code here....

    });
});
Run Code Online (Sandbox Code Playgroud)

来自文档:

许多JavaScript库使用$作为函数或变量名,就像jQuery一样.在jQuery的情况下,$它只是jQuery的别名,因此所有功能都可以在不使用的情况下使用$.如果您需要在jQuery旁边使用另一个JavaScript $库,请通过调用将控制权返回给另一个库$.noConflict().$在jQuery初始化期间保存旧引用; noConflict()简单地恢复它们.


Kok*_*kos 6

如果jQuery未正确加载,您只会收到此错误,您可以使用firebug检查其尝试加载的url,以便查看相对路径是否错误.

另外,在单独的注释中,您可以使用$(function(){作为速记$(document).ready(function(){