0

パラメータを持つ関数を作成し、その関数を呼び出そうとしています。ただし、「キャッチされていない参照エラー: "関数" が定義されていません。

これが私のコードです:

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などの要素呼び出しのいずれかを介して実行した場合。

エラーが発生する理由がわかりません。おそらく別の目で間違いを見つけることができます。

4

1 に答える 1

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

});
于 2013-08-07T03:41:45.947 に答える