0

私は Modernizr を使用してリソースを読み込み、jQuery レイアウトを構築しています。問題は、読み込まれたリソースの 1 つ (script/webframe.js) 内にあるため、$('body').layout() 変数を取得できないことです。私は試した :

var myLayout;

function loadDefaultLayout() {

    Modernizr.load([{
        load: ['stylesheets/jquery.layout.css',
                'script/jquery.layout.min.js',
                'script/webframe.js'],
        complete: function () {
            myLayout = onDesktopWebFrameLoadComplete();
        }
    }]);

    alert(myLayout.options.west.resizable);
}

onDesktopWebFrameLoadComplete は script/webframe.js にあり、レイアウトを返します。

alert(myLayout.options.west.resizable); を移動してみました。onDesktopWebFrameLoadComplete の直後で、アラートが true を示していました。しかし、load() スコープの外に移動すると、未定義のエラーが発生します (myLayout 変数の場合)。

私の質問は : Modernizr.load() の完全な関数スコープ外の変数を取得できるかどうかを知りたいです。

4

1 に答える 1

0

私の問題は、JavaScript ファイルから関数を呼び出した適切な html ファイルでグローバル変数を定義しなかったことだけでした。

要約すると。他のすべての前に、この方法で変数を定義します。

window.myLayout;

次に、変数を変更するリソース (load() 関数を含む) を追加します。

このリソースの変数を変更してください: window.myLayout = "something-else";

リソースを含む html ファイルで使用できるようになりました。

于 2013-06-07T21:25:59.737 に答える