我正在使用Jquery从solr服务器获取json对象。当我用Tomcat运行我的html文件时它运行得很好但是当我将它嵌入我在weblogic上运行的项目时会出现这个错误:(通过firebug完成调试)
$ is not defined
$(document).ready(function(){
为什么在将其嵌入项目时会出现此错误?
这是我的<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>
答案 0 :(得分:27)
您是否在head
部分加载了jQuery?你装的是正确的吗?
<head>
<script src="scripts/jquery.js"></script>
...
</head>
此代码假定jquery.js
位于scripts
目录中。 (如果您愿意,可以更改文件名)
您还可以使用jQuery as hosted by Google:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
...
</head>
显然,您的网络服务器未配置为在请求jQuery-1.6.1.js
时返回/webProject/jquery-1.6.1.js
。这可能有很多原因,例如错误的文件名,文件夹名,路由设置等。您需要创建另一个问题并更详细地描述您的404
(例如本地文件名,操作系统,网络服务器)名称和设置)。
同样,您可以使用Google提供的jQuery(参见上文),但是您仍然可能想知道为什么某些本地文件无法按要求提供服务。
答案 1 :(得分:13)
我发现有时需要使用noConflict:
jQuery.noConflict()(function ($) { // this was missing for me
$(document).ready(function() {
other code here....
});
});
来自文档:
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,
$
只是jQuery的别名,因此所有功能都可以在不使用$
的情况下使用。如果您需要在jQuery旁边使用另一个JavaScript库,请通过调用$
将$.noConflict()
的控制权返还给另一个库。在jQuery初始化期间保存$
的旧引用;noConflict()
只是简单地恢复它们。
答案 2 :(得分:6)
如果jQuery未正确加载,您只会收到此错误,您可以使用firebug检查其尝试加载的url,以便查看相对路径是否错误。
另外,在单独的说明中,您可以使用$(function(){
作为$(document).ready(function(){
的简写
答案 3 :(得分:2)
如果你有一个引用jquery的js文件,那可能是因为js文件在正文中而不是在head部分(这是我的问题)。您应该将js文件移动到jquery.js引用之后的head部分。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script src="myfile.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
答案 4 :(得分:0)
查看可能导致问题的js路径...因为如果未正确加载jQuery,则只会出现此错误。
答案 5 :(得分:0)
我有同样的问题......在http://www.xaluan.com ..但在登录后。我发现在jQuery运行之后,我使用一个不存在的元素id来创建一个函数..
例如:
$('#aaa').remove() <span class="aaa">sss</spam>
所以id="aaa"
不存在..然后jQuery停止运行..因为这样的错误
答案 6 :(得分:0)
使用:
jQuery(document).ready(function($){
// code where you can use $ thanks to the parameter
});
或其较短版本:
jQuery(function($){
// code where you can use $ thanks to the parameter
});
答案 7 :(得分:0)
我刚遇到这个问题,这是因为我试图通过http包含jQuery,而我的页面被加载为https。
答案 8 :(得分:0)
我在Chrome中遇到了同样的问题:我的脚本就像:
<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js" />
<script>
...
$(document).ready(function() {
...
});
...
</script>
当我改为:
<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js"></script>
$(document).ready被调用。
答案 9 :(得分:-1)
在加载DOM元素后设置事件。
$(function () {
$(document).on("click","selector",function (e) {
alert("hi");
});
});