Готовый и функциональный объем документов jQuery
Я хочу предоставить вспомогательные функции, которые позволяют различным компонентам сложного пользовательского интерфейса на основе jQuery скрывать или отображать загрузкуdiv (используется, когда Ajax-вызов инициируется из разных частей страницы).
С этой целью я изначально написал такой код:
<script type="text/javascript">
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Однако я быстро понял, чтоshowLoading только в объеме в рамках этого конкретногоdocument ready.
Следуя совету от
https://stackoverflow.com/a/1055799/141172
Я объявилshowLoading в глобальном масштабе, как это:
<script type="text/javascript">
var showLoading;
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Тем не менее, я все еще нахожу, чтоshowLoading недоступно вdocument ready блоки, которые выполняются позже. Ошибка
The value of the property 'showLoading' is null or undefined, not a Function object
Такое поведение можно увидеть здесь:
JsFiddle также доказывает, чтоshowLoading Реализация & APOS; sdocument ready работает доdocument ready блок, который вызывает это.
Что не так, и как я могу сделать этот вспомогательный метод доступным?
Я определяю это в пределахdocument ready блокировать, потому что он полагается на "загрузку" быть доступным. Есть ли лучший подход к достижению той же цели - предоставить вспомогательную функцию, чтобы скрыть / показать экран загрузки? Я хочу сохранить это во вспомогательной функции, потому что реализация может измениться позже.