Testen, ob jQueryUI geladen wurde


129

Ich versuche, eine Website zu debuggen, und ich denke, dass jQueryUI möglicherweise nicht richtig geladen wurde. Wie kann ich testen, ob jQueryUI geladen wurde?

Antworten:


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

ODER

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

Sollte den Trick machen


2
Mein Problem ist, dass ich jQuery und jQuery.ui dynamisch lade. Es wird manchmal rechtzeitig geladen, manchmal nicht. Wenn die Benutzeroberfläche nicht geladen ist, wie kann ich warten, bis sie geladen ist (oder das Laden erzwingen), bevor ich eine Methode aufrufe?
Gabriel Diaconescu

17
window.jQueryIch bin mir nicht sicher, ob dies einen großen Unterschied macht, aber wenn ich den Boilerplate-Test für jquery verwende, verwende ich ihn für die jQuery-Benutzeroberfläche. Ich verwende den Testwindow.jQuery.ui
Tim B James,

das funktioniert bei mir nicht Kann jemand bitte einen Blick auf diese jsfiddle werfen und mich wissen lassen, wenn ich etwas falsch mache. jsfiddle.net/vEvYv/1 Ich erwarte, dass das else meiner if-Anweisung ausgeführt wird, da ich jQuery nicht lade. außer, es schlägt in der ersten Zeile fehl. Führen Sie die Seite mit geöffneter Browserkonsole aus (ich verwende FF) und sehen Sie die ZeilejQuery is not defined
Dave Haigh

2
@ DaveHaigh - Sie haben JQuery nicht geladen. Die Benutzeroberfläche von JQuery hängt von JQuery ab.
Chris Haines

16

Sie müssen überprüfen, ob sowohl die jQuery UI Library- Datei als auch das CSS-Design geladen werden.

Die jQuery-Benutzeroberfläche erstellt Eigenschaften für das jQuery-Objekt. Sie können Folgendes überprüfen:

jQuery.ui
jQuery.ui.version

Um zu überprüfen, ob die erforderlichen CSS-Dateien geladen sind, würde ich Ihnen empfehlen, Firebug zu verwenden und auf der Registerkarte CSS nach den Themendateien zu suchen.

Ich habe bereits Probleme gesehen, wenn Benutzer die jQuery-UI-Bibliothek korrekt laden, aber das CSS-Thema fehlt.


Um zu überprüfen, ob eine bestimmte Funktionalität geladen ist, würde die Prüfung folgendermaßen aussehen (z. B. für einen Tooltip) ........................ if( typeof jQuery().tooltip != "undefined" )
jave.web

7

Ich weiß, dass dies eine alte Frage ist, aber hier ist ein kurzes kleines Skript, mit dem Sie alle Ihre jQuery-UI-Dinge umschließen können, denen kein Ereignis zugeordnet ist, um sicherzustellen, dass sie erst ausgeführt werden, nachdem die jQuery-UI geladen wurde:

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();

3

Testen Sie einfach das UI-Objekt, z

<script src="jquery.js"></script>
<script src="jquery-ui.js"></script>
<script>
  $(function(){
    // did the UI load?
    console.log(jQuery.ui);
  });
</script>

1

Sie können auf viele Arten überprüfen, ob die jQuery-Benutzeroberfläche geladen ist oder nicht:

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

ODER

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

ODER

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");
}


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.