jQuery Document Ready i Function Scope
Chcę udostępnić funkcje pomocnicze, które pozwalają różnym komponentom złożonego interfejsu użytkownika opartego na jQuery ukryć lub pokazać ładowaniediv (używane, gdy wywołanie Ajax jest inicjowane z różnych części strony).
W tym celu początkowo napisałem taki kod:
<script type="text/javascript">
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Szybko to jednak zrozumiałemshowLoading ma tylko zakres w tym konkretnymdokument gotowy.
Zgodnie z radą od
https://stackoverflow.com/a/1055799/141172
OświadczyłemshowLoading w skali globalnej jak ten:
<script type="text/javascript">
var showLoading;
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Jednak wciąż to znajdujęshowLoading nie jest dostępny wdokument gotowy bloki, które wykonują się później. Błąd jest
Wartość właściwości „showLoading” jest null lub undefined, a nie obiekt Function
To zachowanie można zobaczyć tutaj:
JsFiddle dowodzi również, żeshowLoading wdrożeniadokument gotowy biegnie przeddokument gotowy blok, który go wywołuje.
Co jest nie tak i jak mogę udostępnić tę metodę pomocy?
Definiuję to w ciągudokument gotowy blok, ponieważ opiera się na dostępnym „# ładowaniu”. Czy istnieje lepsze podejście do osiągnięcia tego samego celu, jakim jest funkcja pomocnicza do ukrywania / pokazywania ekranu ładowania? Chcę to zachować w funkcji pomocniczej, ponieważ implementacja może się później zmienić.