我正在使用名为SexyLightbox的增强版Lightbox。它使用jQuery作为其框架。当我初始化它时,当Lightbox没有运行时,我会在常规的invervals上出现此错误,当我尝试显示图片时,我会无限次地出现此错误:
Error: $ is undefined
Source File: http://bagelstreet.se/sexylightbox/sexylightbox.v2.3.jquery.min.js
Line: 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>
更新所以 - 我已经更换了库,我正在使用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版本是1.3.2。
对可能发生的事情的任何想法?
解决
问题是SexyLightbox作者代码的编码错误。在定义$之前,在jQuery.bind()上使用$。
答案 0 :(得分:5)
sexylightbox.v2.3.jquery.min.js中的某些内容导致$
设置为undefined。如果您在加载该文件之前设置了一个断点,$
正好是jQuery
的别名。我会尝试加载尚未通过Packer运行的sexylightbox.v2.3版本。这样你就可以正确地使用Firebug来弄清楚发生了什么。
答案 1 :(得分:0)
您是否有任何理由需要使用jQuery.noConflict()?
答案 2 :(得分:0)
我认为这可能与Content-Type
有关。似乎jquery.min.js
没有回复内容类型,但sexylightbox.v2.3.jquery.js
会:application/x-javascript
。你能获得使用application/x-javascript
的其他请求吗?
答案 3 :(得分:0)