Javascript jQuery错误:“quot;$是未定义的“;

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

我正在使用一个名为SexyLightbox的增强版Lightbox。它使用jQuery作为其框架。当我初始化它时,当Lightbox未运行时,我会在常规invervals上出现此错误,当我尝试显示图片时,会出现无限次错误:

错误:$未定义
源文件:
第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);  
  };  
};