關(guān)于引入 Foundation 發(fā)生 $(...).foundation is not a function
2020-06-10 10:35 作者:風(fēng)雨bu改 | 我要投稿

此篇文章中使用的 Foundation?v6.3.1
使用本人開發(fā)的自動化 web 手腳架,只是會根據(jù)目錄結(jié)構(gòu)和文件前綴自動引入文件到 webpack 中而已。只要看文件就好。
出錯的位置

在全局模塊 main.js 中寫入 Foundation 初始化方法
$(() => $(document).foundation());
在此之前已經(jīng)引入的 Foundation?模塊

啟動 webpack 開發(fā)服務(wù)器,進(jìn)入頁面打開控制臺查看。

這意味著 Foundation 的方法沒有插入到 jQuery 中。而且無法執(zhí)行就意味著 Foundation 需要使用到 javascript 的部分失效了。
解決方法

在外部模塊中使用的 jQuery 對象無論 Foundation 是否加載都是沒有插入方法的原始對象。
那么我在頁面中寫入 js 使用的 jQuery 對象會加載了 Foundation 方法嗎

改為插入 script 節(jié)點和直接寫在頁面中效果都是一樣的。運行后不再報錯。
那么只要把
$(() => $(document).foundation());
改為
$(() => {
? ?let a = document.createElement("script");
? ?document.body.appendChild(a);
? ?a.innerHTML = "$(document).foundation();";
});
就可以解決了
標(biāo)簽: