我正在使用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.js在scripts目录中.(如果您愿意,可以更改文件名)
您还可以使用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()简单地恢复它们.
如果jQuery未正确加载,您只会收到此错误,您可以使用firebug检查其尝试加载的url,以便查看相对路径是否错误.
另外,在单独的注释中,您可以使用$(function(){作为速记$(document).ready(function(){