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?

waiwai933
quelle

Antworten:

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

ODER

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

Sollte den Trick machen

chrismacp
quelle
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.

CMS
quelle
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();
Mike
quelle
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>
bdl
quelle
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");
}


Tushar Shukla
quelle