Получение переменных вне полной области Modernizr.load()

Я использую Modernizr для загрузки ресурсов для создания макета 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().


person user2411376    schedule 07.06.2013    source источник


Ответы (1)


Моя проблема заключалась только в том, что я не определил свою глобальную переменную в правильном html-файле, который вызывал функцию из файла JavaScript.

Итак, вкратце. Определите свою переменную таким образом, прежде чем все остальное:

window.myLayout;

Затем добавьте свой ресурс, который изменит вашу переменную (содержащую функцию load())

Измените переменную в этом ресурсе: window.myLayout = "something-else";

Теперь вы можете использовать его в html-файле, содержащем ваш ресурс.

person user2411376    schedule 07.06.2013