Testowanie, czy jQueryUI został załadowany

131

Próbuję debugować witrynę i myślę, że jQueryUI mogło nie zostać poprawnie załadowane. Jak mogę sprawdzić, czy jQueryUI został załadowany?

waiwai933
źródło

Odpowiedzi:

245
if (jQuery.ui) {
  // UI loaded
}

LUB

if (typeof jQuery.ui != 'undefined') {
  // UI loaded
}

Powinien załatwić sprawę

chrismacp
źródło
2
moim problemem jest to, że dynamicznie ładuję jQuery i jQuery.ui. Czasami ładuje się na czas, czasami nie. Jeśli interfejs użytkownika nie jest załadowany, jak mogę poczekać na to (lub wymusić jego załadowanie) przed wywołaniem jakiejkolwiek metody?
Gabriel Diaconescu,
17
nie jestem pewien, czy to robi dużą różnicę, ale idąc z testem Boilerplate dla jquery, używają window.jQuerywięc dla interfejsu jQuery używam testuwindow.jQuery.ui
Tim B James
to nie działa dla mnie. czy ktoś mógłby rzucić okiem na to jsfiddle i dać mi znać, jeśli robię coś źle. jsfiddle.net/vEvYv/1 Oczekuję, że działanie else z mojej instrukcji if, ponieważ nie ładuję jQuery. z wyjątkiem, że kończy się niepowodzeniem w pierwszej linii. Uruchom stronę z otwartą konsolą przeglądarki (korzystam z FF) i zobacz linięjQuery is not defined
Dave Haigh,
2
@DaveHaigh - nie załadowałeś JQuery. Interfejs użytkownika JQuery zależy od JQuery.
Chris Haines
16

Musisz sprawdzić, czy ładowane są zarówno plik biblioteki interfejsu użytkownika jQuery , jak i motyw CSS .

Interfejs użytkownika jQuery tworzy właściwości na obiekcie jQuery, możesz sprawdzić:

jQuery.ui
jQuery.ui.version

Aby sprawdzić, czy wymagane pliki CSS są załadowane, polecam skorzystać z Firebuga i poszukać plików motywu na karcie CSS.

Widziałem już wcześniej problemy, gdy użytkownicy ładowali poprawnie bibliotekę jQuery UI, ale brakuje motywu CSS.

Christian C. Salvadó
źródło
Aby sprawdzić, czy jakaś konkretna funkcjonalność jest załadowana, sprawdź wygląd (np. Dla podpowiedzi) ........................ if( typeof jQuery().tooltip != "undefined" )
jave.web
8

Wiem, że to stare pytanie, ale oto krótki mały skrypt, którego możesz użyć do zawijania wszystkich elementów interfejsu użytkownika jQuery, które nie mają skojarzonego zdarzenia, aby upewnić się, że zostaną wykonane dopiero po załadowaniu interfejsu użytkownika jQuery:

function checkJqueryUI() {
    if (typeof jQuery.ui != 'undefined') {
        do_jqueryui();
    }
    else {
        window.setTimeout( checkJqueryUI, 50 );
    }
}
// Put all your jQuery UI stuff in this function
function do_jqueryui() {
    // Example:
    $( "#yourId" ).dialog();
}
checkJqueryUI();
Mikrofon
źródło
3

Po prostu przetestuj obiekt ui, np

<script src="jquery.js"></script>
<script src="jquery-ui.js"></script>
<script>
  $(function(){
    // did the UI load?
    console.log(jQuery.ui);
  });
</script>
bdl
źródło
1

Możesz sprawdzić, czy interfejs użytkownika jQuery jest załadowany na wiele sposobów, takich jak:

if (typeof jQuery.ui == 'undefined') {
   // jQuery UI IS NOT loaded, do stuff here.
}

LUB

if (typeof jQuery.ui != 'function') {
    // jQuery UI IS NOT loaded, do stuff here.
}

LUB

if (jQuery.ui) {
    // This will throw an error in STRICT MODE if jQuery UI is not loaded, so don't use if using strict mode
    alert("jquery UI is loaded");
} else {
    alert("Not loaded");
}


Tushar Shukla
źródło