Verifica se jQueryUI è stato caricato


129

Sto cercando di eseguire il debug di un sito Web e penso che jQueryUI potrebbe non essere stato caricato correttamente. Come posso verificare se jQueryUI è stato caricato?

Risposte:


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

O

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

Dovrebbe fare il trucco


2
il mio problema è che carico dinamicamente jQuery e jQuery.ui. A volte si carica nel tempo, a volte no. Se l'interfaccia utente non viene caricata, come posso attendere (o forzare il caricamento) prima di chiamare un metodo?
Gabriel Diaconescu,

17
non sono sicuro che questo faccia molta differenza, ma andando con il test di Boilerplate per jquery, lo usano window.jQuerycosì per l'interfaccia utente di jQuery Uso il testwindow.jQuery.ui
Tim B James,

questo non funziona per me. qualcuno può per favore dare un'occhiata a questo jsfiddle e farmi sapere se sto facendo qualcosa di sbagliato. jsfiddle.net/vEvYv/1 Mi aspetto che venga eseguita l'altra della mia istruzione if perché non sto caricando jQuery. tranne, non riesce sulla prima riga. Esegui la pagina con la console del browser aperta (sto usando FF) e guarda la rigajQuery is not defined
Dave Haigh

2
@DaveHaigh - non hai caricato JQuery. L'interfaccia utente di JQuery dipende da JQuery.
Chris Haines,

16

È necessario verificare se entrambi, il jQuery UI libreria di file e CSS a tema vengono caricati.

L'interfaccia utente di jQuery crea proprietà sull'oggetto jQuery, è possibile verificare:

jQuery.ui
jQuery.ui.version

Per verificare se sono stati caricati i file CSS necessari, ti consiglio di utilizzare Firebug e cercare i file dei temi nella scheda CSS.

Ho già riscontrato problemi in precedenza, quando gli utenti caricano correttamente la libreria dell'interfaccia utente jQuery ma manca il tema CSS.


Per verificare se è stata caricata una particolare funzionalità, il controllo sarebbe simile (ad esempio per la descrizione if( typeof jQuery().tooltip != "undefined" )
comando

7

So che questa è una vecchia domanda, ma ecco un breve script che puoi usare per racchiudere tutte le tue cose dell'interfaccia utente jQuery che non hanno un evento associato per assicurarti che vengano eseguite solo dopo che l'interfaccia utente jQuery è stata caricata:

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

Basta provare l'oggetto ui, ad es

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

1

Puoi verificare se l'interfaccia utente di jQuery è caricata o meno in molti modi come:

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

O

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

O

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


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.