我使用Foundation 6
安装了bower
。每次使用warning
时,我都会在控制台中获得多个Foundation 6 - JavaScript based plugin
。
确切警告:
尝试在已经拥有Foundation插件的元素上初始化magellan。
我的脚本包括:
<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;
}
我从头开始尝试re-installing
,但它仍然无效。
类似的问题存在于Zurb基金会论坛,但到目前为止还没有很好的答案。
如何解决此问题?
答案 0 :(得分:4)
<强>更新强>
对于版本6.4。* ,如果在{1}}中提到plugins
,则所有基于js
和$(document).foundation();
的元素往往只能 html
文件。因此,如果您已将其写入,请将其从app.js
中删除。有其他原因,请参阅下面的说明。
虽然我已经在问题的comments
中提到了答案,但我觉得用更多的点来写它会更好。
使用Zurb Foundation 6
(命令行)安装bower
时,它会为您提供一个很好的index.html
页面,其中包含引用{<script>
的{{1}}标记1}} js文件位于external
。默认情况下,root\js\app.js
文件具有以下代码:
app.js
所以基本上,你已经掌握了一切。
但是,在基金会6和我不知道这些变化之前,这不是它的工作方式。我没有查看$(document).foundation(); //invoke all jQuery based Foundation elements
的内容,因为我认为它是空。我只是通过编写以下代码来完成在我的app.js
页面中调用它们的旧方法:
html
这种 double 引用了基于jQuery的Foundation元素,在浏览器控制台上引发<script type="text/javascript">
$(document).foundation();
</script>
。
解决方法是删除任何一个调用,但实际上删除warning
js文件中编写的代码更有意义,原因如下:
external
个请求,非常轻微增加宝贵的页面加载时间。如果可以的话,为什么不减少呢。http
文件。警告会消失。app.js
中提及,则所有基于plugins
和js
的元素往往只能 文件。答案 1 :(得分:1)
此问题的最佳解决方案是将 $(document).foundation();
放在 {下的 <script>
标记内{1}} 文件,并将其从外部.html
文件(.js
)中删除
像这样 - ,
in
<强>
app.js
强>
xyz.html
其他解决方案,例如,将其放在外部<script type="text/javascript">
$(document).foundation();
</script>
文件(.js
)中,并将其从app.js
文件中删除,并不总是有效。
至少它对我不起作用。
经过测试 -
基础版本6.4.2