Javascript 未定义不是函数:如何让LABjs使用jQuery脚本

Javascript 未定义不是函数:如何让LABjs使用jQuery脚本,javascript,jquery,labjs,Javascript,Jquery,Labjs,我正在尝试使用LABjs来缩短网页的加载时间。然而,我在自己的jQuery脚本中使用的jQuery.cookie('mycokie')却得到了“未定义的非函数” 如果您能给我一些关于如何实现LABjs来处理这个问题的建议,我将不胜感激,因为我不太理解文档 以下是我目前掌握的代码: HTML 我的HTML页面的页脚中有jQuery和LAB.min.js <script type="text/javascript" src="myfolder/jquery1.9.1.js"></s

我正在尝试使用LABjs来缩短网页的加载时间。然而,我在自己的jQuery脚本中使用的jQuery.cookie('mycokie')却得到了“未定义的非函数”

如果您能给我一些关于如何实现LABjs来处理这个问题的建议,我将不胜感激,因为我不太理解文档

以下是我目前掌握的代码:

HTML

我的HTML页面的页脚中有jQuery和LAB.min.js

<script type="text/javascript" src="myfolder/jquery1.9.1.js"></script>
<script type="text/javascript" src="myfolder/LAB.min.js"></script>
ratings.js

js是jQuery(document).ready函数中包含的一段很长的代码

jQuery(document).ready(function() {
 //LOTS OF CODE HERE
    if(jQuery.cookie('mycookie')==null){    
        //LOTS OF CODE HERE
    }   
//LOTS OF CODE HERE
});
我在ratings.js中发现一个错误,该错误与包含jQuery.cookie(“mycokie”)的代码行有关。它说“未捕获类型错误:未定义不是函数”

据我所知,当我试图将jQuery.cookie()传递给.wait()时,它还没有定义。请记住,我希望将ratings.js保存在一个单独的js文件中,因为它包含大量代码,并且是许多类似的js文件之一,当我使用LABjs加载它们时,它们也会抛出相同的错误

非常感谢


Katie

您应该能够删除HTML中指向jQuery的链接,只需使用LABJS加载所有脚本即可。这将在引导或插件之前加载jQuery:

$LAB
  .setGlobalDefaults({Debug:true}) // removed semi-colon
  .script("myfolder/jquery1.9.1.js")
  .wait()
  .script("myfolder/bootstrap.min.js")
  .script("myfolder/jquery-cookie.js") 
  .wait() 
  .script("myfolder/ratings.js");

(请注意,您的代码中有一个分号,它可能也破坏了某些东西):

谢谢Andy-很好。分号-我现在已经去掉了!我已经试着完全按照您的建议对页面进行编码,但现在我得到了
未捕获的引用错误:jQuery未定义
。因此,我想它甚至没有机会知道cookie没有定义,因为它无法克服jQuery没有定义的事实。我不确定这是怎么回事。(zip文件,只包含JS文件和HTML文件-只需解压缩到一个新文件夹中,双击HTML文件,打开控制台,您应该会看到“我的名字是Bob”出现),删除分号后效果良好。您可以在控制台中检查它是否正在查找和加载jquery,并且它没有被错误命名吗?嗨,Andy-非常感谢。知道它对你有用,并且看到它对我自己有用,使用你的例子帮助我调试了正在发生的事情。我在HTML中有一个脚本列表,并逐渐将它们移动到LABjs中,一个接一个地加载。但是,如果脚本依赖于用LABjs加载的东西,那么您似乎无法正常加载脚本。e、 g.如果您使用LABjs加载jQuery,然后正常加载ratings.js,它将无法工作。您必须使用LABjs加载它们。再次感谢安迪-我现在可以看到如何让它工作了@凯蒂,很高兴我能帮上忙。
$LAB
  .setGlobalDefaults({Debug:true}) // removed semi-colon
  .script("myfolder/jquery1.9.1.js")
  .wait()
  .script("myfolder/bootstrap.min.js")
  .script("myfolder/jquery-cookie.js") 
  .wait() 
  .script("myfolder/ratings.js");