我用参数编写了一个函数,我试图调用该函数。但是,我一直得到“未捕获的引用错误:”函数“未定义。
这是我的代码:
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。
我不知道为什么我会得到错误,也许另一组眼睛可以发现我的错误。
答案 0 :(得分:0)
将函数传递给$(fn)
之类的jQuery对象时,它与$(document).ready(fn)
相同。您的第一个参数bColor
实际上是jQuery
。您可能想要的是将所有内容包装在ready事件中并在该闭包内使用$
:
jQuery(function($){
// use `$` from now on instead of `jQuery`
var bColor, fColor, fStyle, bUrl;
function changeBackground() {
...
}
});