基础5可能Bug:Uncaught TypeError:Layer必须是文档节点foundation.min.js:8

时间:2013-11-22 18:25:27

标签: javascript zurb-foundation

我第一次尝试Zurb Foundation 5框架而且我收到了这个错误:“Uncaught TypeError:Layer必须是文档节点foundation.min.js:8”

这是因为我在:

中有这个

<script type="text/javascript" src="libs/foundation.min.js"></script>

当我把它移到身体上时,错误就消失了。

为什么呢?我错过了一些关于javascript的内容还是一个bug?

2 个答案:

答案 0 :(得分:9)

这是一个错误已解决in a recent commit merged into what will be v5.0.3。只需手动包含该提交或等到v5.0.3发布,你应该好好去。

正在进行什么

Foundation现在可以从加载文件的任何位置立即初始化,而不是等待DOM加载。为了提高移动性能,Foundation 5嵌入了一个名为FastClick的库,并尝试在初始化时将其附加到document.body,因此如果您在<head />之前<body />执行JavaScript已渲染,FastClick抛出该错误。

如果您使用Rails TurbolinksFlask Turbolinks或任何动态替换<body />的类似库,则需要将JS保留在<head /> < / p>

答案 1 :(得分:2)

最有可能你的html文件是这样的:

<!doctype html>
<html>
<head>
<title>Title</title>

<script src="../js/jquery.js"></script>
<script src="../js/foundation.min.js"></script>

</head>
<body>

<script>
  $(document).foundation();
</script>

</body>
</html>

你得到的错误如下:

Uncaught TypeError: Layer must be a document node 
Uncaught TypeError: Object [object Object] has no method 'foundation' 

您必须将包含foundation.js的<script>行移至正文部分,就在其他脚本标记之前。正如文档中所述。它不是一个bug,但它是脚本排序/执行和依赖的问题。请参阅load and execute order of scripts和其他相关问答。并且必须在foundation.js库之前包含jquery.js。