jQuery错误:“$ is undefined”

时间:2010-01-27 14:02:01

标签: javascript jquery

我正在使用名为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()上使用$。

4 个答案:

答案 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)

如何尝试下载已经有效的演示文件。

<{3}}上的

文件:

使用看起来有用的文件...也许它会帮助你......