检索Modernizr.load()之外的变量完成范围

时间:2013-06-07 19:28:23

标签: javascript jquery scope modernizr jquery-layout

我使用Modernizr加载ressources来构建jQuery布局。 问题是我无法检索我的$('body')。layout()变量,因为它在一个加载的资源中(在script / webframe.js中)。我试过了:

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中并返回布局。

我尝试移动警报(myLayout.options.west.resizable);就在onDesktopWebFrameLoadComplete之后,警报显示为true。但是当我将它移出load()作用域时,我有一个未定义的错误(对于myLayout变量)。

我的问题是: 我想知道是否可以在Modernizr.load()完整的函数范围之外检索变量。

1 个答案:

答案 0 :(得分:0)

我的问题只是我没有在正确的html文件中定义我的全局变量,该文件从JavaScript文件调用该函数。

总结一下。在其他所有事情之前以这种方式定义变量:

window.myLayout;

然后添加将更改变量的资源(包含load()函数)

在此资源中更改您的变量:window.myLayout =" something-else";

您现在可以在包含资源的html文件中使用它。