使用 Labjs,我收到“$ 未定义”错误,但 js 仍然有效,不确定为什么:(

Using Labjs i get a "$ is not defined" error but the js still works, not sure why :(

本文关键字:有效 js 为什么 不确定 Labjs 使用 未定义 错误      更新时间:2023-09-26

我正在使用LABjs来实现一些并行js加载的优点。

但是,由于某种奇怪的原因,我在调试控制台中收到"未定义$ "的错误。

我的代码如下:

<script>
$LAB.script("http://use.typekit.com/blah.js").script("/assets/js/libs/jquery-1.5.1.min.js").script("/assets/js/libs/basic-jquery-slider.min.js").wait().script("/assets/js/libs/modernizr-1.7.min.js").script("/assets/js/libs/jquery.watermarkinput.js").wait().script("/assets/js/libs/jquery-ui-1.8.14.custom.min.js").wait().script("/assets/js/effects.js").wait(function(){});

在我的效果中.js我有。

try{Typekit.load();}catch(e){}
$('#banner').bjqs({
'width' : 980,
'height' : 212,
'showMarkers' : false,
'showControls' : false,
'centerMarkers' : false
});

一切正常,但我收到上述错误。我不明白为什么,jquery对象应该在那里(并且必须一切正常),那么为什么会出现错误?

有什么想法吗?我确定我正确使用了 labjs,但我认为此错误使 IE7 :(感到不安

我可能应该在后一个代码中添加一个 $(document).ready? 但这似乎让 Labjs 感到不安。

提前感谢您的任何帮助!

试试这个:

<script>
$LAB
.script("http://use.typekit.com/blah.js")
.script("/assets/js/libs/jquery-1.5.1.min.js").wait() // <---- ADD THIS .wait()
.script("/assets/js/libs/basic-jquery-slider.min.js").wait()
.script("/assets/js/libs/modernizr-1.7.min.js")
.script("/assets/js/libs/jquery.watermarkinput.js").wait()
.script("/assets/js/libs/jquery-ui-1.8.14.custom.min.js").wait()
.script("/assets/js/effects.js").wait(function(){});
</script>

其他一些注意事项:

  1. 删除最后一个 empty/noop .wait() 函数,它
  2. 不再需要了。
  3. 现代化不应该由 LABjs 加载...您应该根据 IIRC 所说的文档加载它,它应该位于文档顶部的普通<script>标签中。
  4. 我的猜测是你在这个链条中的一些.wait()是不必要的。例如,我的猜测是在"jquery-slider"和"jquery-watermark"script()调用之后不需要它们,因为我敢打赌它们不相互依赖,因此可以以任何尽快顺序运行彼此,只要它们确保在 jQuery 完成后运行(这就是为什么我在代码片段中添加注释以添加.wait()调用!

我刚刚意识到隐藏在页脚的包含中是对我的效果.js文件的另一个调用。但这是在正常的脚本标记中。这可以解释为什么它运行时出现错误然后工作,因为它被调用了两次,一次在 labjs 中,一次不在。真是个白痴:(谢谢大家的尝试!对不起!