我使用 bower 安装了 Foundation 6。每次我使用任何 Foundation 6 - JavaScript based plugin 时,我都会在控制台中收到多个 warning。
确切的警告:
Tried to initialize magellan on an element that already has a Foundation plugin.
我的脚本包括如下所示:
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/what-input/what-input.js"></script>
<script src="bower_components/foundation-sites/dist/foundation.js"></script>
<script src="js/app.js"></script>
<script type="text/javascript">
$(document).foundation();
</script>
该警告由 foundation.js 中 180 行的以下代码触发:
// For each plugin found, initialize it
$elem.each(function () {
var $el = $(this),
opts = {};
// Don't double-dip on plugins
if ($el.data('zfPlugin')) {
console.warn("Tried to initialize " + name + " on an element that already has a Foundation plugin.");
return;
}
我已经尝试从头开始重新安装,但还是不行。
Zurb Foundation Forum 中也有类似的问题,但目前还没有很好的答案。
我该如何解决?
最佳答案
更新
对于版本 6.4.*,所有 plugins和 js如果 $(document).foundation();,基于元素仅会起作用在 html 中提到文件。所以从app.js中删除它如果你写在里面。对于其他原因,请阅读以下说明。
尽管我早就在 comments 中提到了答案这个问题,我觉得还是多写几个点比较好。
安装时 Zurb Foundation 6使用 bower (命令行),它给你一个很好的 index.html开始页面,其中包含 <script>引用 external 的标签js 文件位于 root\js\app.js . app.js文件默认有以下代码:
$(document).foundation(); //invoke all jQuery based Foundation elements
所以基本上,您已经具备了开始的一切条件。
但是,在 Foundation 6 之前,这并不是它的工作方式,我也不知道这些变化。我没有仔细阅读 app.js 的内容因为我假设它是空的。我只是在我的 html 中采用了调用它们的旧方法。通过编写以下代码来访问页面:
<script type="text/javascript">
$(document).foundation();
</script>
这种双重 引用了基于 jQuery 的 Foundation 元素引发了 warning在浏览器控制台。
解决方案是删除任一调用,但实际上删除了 external 中编写的代码由于以下原因,js 文件更有意义:
http请求,非常轻微地增加宝贵的页面加载时间。如果可以,为什么不减少它。app.js文件。警告会消失。plugins和 js如果在 html 中提及,基于元素仅 起作用。文件。关于javascript - Foundation 6 - 控制台警告 : Tried to initialize magellan (any JS plugin) on an element that already has a Foundation plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39076312/