代码之家  ›  专栏  ›  技术社区  ›  Joel A. Villarreal Bertoldi

jquery错误:“$未定义”

  •  3
  • Joel A. Villarreal Bertoldi  · 技术社区  · 15 年前

    我用的是增强版的“sexylightbox”。它使用jquery作为框架。当我初始化它时,当lightbox没有运行时,在常规的inversals上会得到这个错误,当我尝试显示图片时,会得到无限次的错误:

    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 回复  |  直到 15 年前
        1
  •  5
  •   CalebD    15 年前

    sexylightbox.v2.3.jquery.min.js中的某些内容导致 $ 设置为未定义。如果在加载该文件之前设置断点, $ 是的正确别名 jQuery . 我会尝试加载一个没有经过packer的sexylightbox.v2.3版本。这样你就可以正确地使用Firebug来判断到底发生了什么。

        2
  •  0
  •   justkt    15 年前

    你有什么理由要用吗 jQuery.noConflict() ?

        3
  •  0
  •   MDCore Dai Qizhi    15 年前

    我想这可能与 Content-Type . 似乎 jquery.min.js 没有用内容类型响应,但 sexylightbox.v2.3.jquery.js 做: application/x-javascript . 你能得到其他的请求吗 应用程序/x-javascript ?

        4
  •  0
  •   Reigel Gallarde    15 年前

    试着在他们的演示上下载已经运行的文件怎么样?

    他们的档案 demo :

    使用可以工作的文件…也许它能帮助你…