我正在尝试使用LABjs来改进我的网页的加载时间。但是,对于jQuery.cookie('mycookie'),我在自己的jQuery脚本中使用的是“未定义而不是函数”。
我希望能就如何实现LABjs来处理这个问题提供一些建议,因为我不太了解文档。
下面是我到目前为止掌握的代码:
我的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>LAB.min.js文件
在这里,我按顺序加载脚本。ratings.js依赖于jquery ie.js,因此我已经首先添加了一个wait(),以确保jquery ie.js首先加载。
//ALL THE LABjs code is here, but not included on this post!
$LAB.setGlobalDefaults({Debug:true});
.script("myfolder/bootstrap.min.js")
.script("myfolder/jquery-cookie.js")
.wait()
.script("myfolder/ratings.js");ratings.js
ratings.js是jQuery(文档).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('mycookie')的代码行有关的错误。它说“未定义的类型错误:未定义不是一个函数”。
据我所知,当我试图将jQuery.cookie()传递给.wait()时,还没有定义它。让它工作的最佳方法是什么,请记住,我希望将ratings.js保存在一个单独的js文件中,因为它包含大量代码,并且是许多类似的js文件之一,当我用LABjs加载它们时也会抛出相同的错误。
非常感谢!
凯蒂
发布于 2014-05-27 09:10:49
您应该能够在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");(请注意,您的代码中有一个分号,可能也会破坏某些内容):
https://stackoverflow.com/questions/23885097
复制相似问题