Javascript jQuery错误:“quot;$是未定义的“;
我正在使用一个名为SexyLightbox的增强版Lightbox。它使用jQuery作为其框架。当我初始化它时,当Lightbox未运行时,我会在常规invervals上出现此错误,当我尝试显示图片时,会出现无限次错误:Javascript jQuery错误:“quot;$是未定义的“;,javascript,jquery,Javascript,Jquery,我正在使用一个名为SexyLightbox的增强版Lightbox。它使用jQuery作为其框架。当我初始化它时,当Lightbox未运行时,我会在常规invervals上出现此错误,当我尝试显示图片时,会出现无限次错误: 错误:$未定义 源文件: 第12行 初始化脚本如下所示: <link rel="stylesheet" href="sexylightbox/sexylightbox.css" type="text/css" media="all" /> <s
错误:$未定义
源文件:
第12行
初始化脚本如下所示:
<link rel="stylesheet" href="sexylightbox/sexylightbox.css" type="text/css" media="all" />
<script type="text/javascript" src="sexylightbox/jquery.min.js"></script>
<script type="text/javascript" src="sexylightbox/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="sexylightbox/sexylightbox.v2.3.jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
SexyLightbox.initialize({color:'black', dir: 'sexyimages'});
});
</script>
$(文档).ready(函数(){
初始化({color:'black',dir:'sexyimages'});
});
更新So-我已经替换了库,我使用的是sexylightbox的未打包版本。FireBug指出jQuery.bind()函数上的错误,特别是在粗体行上:
jQuery.bind = function(object, method){
var args = Array.prototype.slice.call(arguments, 2);
return function() {
var args2 = [this].concat(args, $.makeArray( arguments ));
return method.apply(object, args2);
};
};
jQuery.bind=函数(对象、方法){
var args=Array.prototype.slice.call(参数,2);
返回函数(){
var args2=[this].concat(args,$.makeArray(参数));
返回方法.apply(对象,args2);
};
};
使用的jQuery版本是1.3.2
对可能发生的事情有什么想法吗
解决
问题是SexyLightbox作者的代码出现编码错误。在定义$之前在jQuery.bind()上使用了$。是否有任何原因需要使用?sexylightbox.v2.3.jQuery.min.js中的某些内容导致将
$
设置为未定义。如果在加载该文件之前设置断点,$
正确地作为jQuery
的别名。我会尝试加载一个版本的sexylightbox.v2.3,它还没有通过Packer运行。这样,您就可以正确地使用Firebug来了解发生了什么。我认为这可能与内容类型有关。似乎jquery.min.js
没有响应内容类型,但sexylightbox.v2.3.jquery.js
有:application/x-javascript
。你能得到其他使用application/x-javascript
的请求吗?试着在他们的演示中下载已经运行的文件怎么样
其上的文件:
使用被视为有效的文件。。。也许它会帮助您……很明显,您忘了包含jQuery:)干杯也许你想在评论之前读一读?:)尝试完全清除缓存Joel…我在这里测试了几个浏览器,都没有JS错误。@Nick Craver:清除了缓存,结果相同。我可以问一下你的jQuery是什么版本吗?没有涉及其他库。加载了未打包的版本。错误指向jQuery.bind(),如问题更新中所述。我不知道确切原因,但似乎是某种类型的关闭问题。在bind函数中将$.makeArray更改为jQuery.makeArray,它应该可以正常工作。我认为这是代表sexylightbbox作者的一个bug,因为绑定函数应该使用jQuery,而不是$。这不是我对SexyLightbox的第一次实现,我是根据那个演示使用它的。好的。。。我在你的密码上找不到任何错误。。。就我看来。。。我唯一能想到的就是那些文件。。。我会再试一次。。。嗯,你在本地主机上有吗?或者你可以给我们一个链接样本?。。。
jQuery.bind = function(object, method){
var args = Array.prototype.slice.call(arguments, 2);
return function() {
var args2 = [this].concat(args, $.makeArray( arguments ));
return method.apply(object, args2);
};
};