未捕获的引用错误:函数未定义javascript

时间:2013-08-07 03:31:12

标签: javascript jquery syntax-error

我用参数编写了一个函数,我试图调用该函数。但是,我一直得到“未捕获的引用错误:”函数“未定义。

这是我的代码:

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。

我不知道为什么我会得到错误,也许另一组眼睛可以发现我的错误。

1 个答案:

答案 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() {
    ...
  }

});