0
我寫了一個帶參數的函數,我試圖調用該函數。不過,我不斷收到「未捕獲引用錯誤:‘’沒有定義函數未捕獲的參考錯誤:函數未定義javascript
這裏是我的代碼:
var bColor, fColor, fStyle, bUrl;
jQuery(function changeBackground(bColor, fColor, fStyle, bUrl) {
if (typeof (bColor) === 'undefined') bColor = '#fff';
if (typeof (bUrl) === 'undefined') bUrl = '';
if (typeof (fColor) === 'undefined') fColor = '#000';
if (typeof (fStyle) === 'undefined') fStyle = 'Monda';
WebFontConfig = {
google: { families: [ fStyle ] }
};
(function() {
var wf = document.createElement('script');
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
jQuery('body').css({ backgroundColor: bColor, backgroundUrl: bUrl, color: fColor, fontFamily: fStyle });
});
我得到的錯誤,無論我是否從腳本或者,如果運行的功能。我通過任何元素的調用如onload事件中運行它。
我不知道爲什麼我收到的錯誤也許另一雙眼睛能發現我的錯誤。
您沒有聲明可從其他位置訪問的函數。我猜你指的是你的'changeBackground'「功能」。您正在調用'jQuery'函數,並將其傳遞給名爲'changeBackground'的命名函數表達式。這裏唯一可以訪問'changeBackground'的地方是**裏面的**。這是你唯一的代碼嗎? – Ian
是的。那真是令人尷尬。那不是我想要達到的。我如何使其全球可訪問? –
別擔心,一點都不尷尬!所以,只要刪除'jQuery('在開頭和''''結束它所有,所以它將成爲一個函數聲明。只要此代碼位於全局範圍內,它將在全局範圍內聲明。如果你想在文檔準備好的時候調用它,那麼使用'$(document).ready(function(){changeBackground(params ...);});' – Ian