2010-02-14 22 views
122

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

risposta

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

O

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

dovrebbe fare il trucco

+1

il mio problema è che carico jQuery e jQuery.ui in modo dinamico. A volte carica nel tempo, a volte no. Se ui non è caricato, come posso aspettare (o forzarlo per essere caricato) prima di chiamare qualsiasi metodo? –

+0

sembra funzionare finora per me ... – David

+17

non so se questo fa molta differenza, ma con il test di Boilerplate per jquery, usano 'window.jQuery' quindi per l'interfaccia utente di jQuery uso il test' window.jQuery. ui' –

3

Basta eseguire il test per 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> 
15

È necessario verificare se entrambi, il Biblioteca file di jQuery UI e Tema CSS vengono caricati.

jQuery UI crea proprietà sull'oggetto jQuery, si potrebbe verificare:

jQuery.ui 
jQuery.ui.version 

per verificare se il file necessario CSS (s) vengono caricati, ti consiglierei di utilizzare Firebug, e cercare per il tema file nella scheda CSS.

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

+0

Per controllare se alcune funzionalità particolare viene caricato il controllo sarà simile (ad esempio per tooltip) ........................ 'if (typeof jQuery(). tooltip! =" undefined ")' –

6

So che questa è una vecchia questione, ma ecco un piccolo script rapido è possibile utilizzare per avvolgere tutte le tue cose jQuery UI che don avere un evento associato per assicurarsi che vengano eseguiti solo dopo aver caricato l'interfaccia utente 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(); 
0

Si c un controllo se jQuery UI è caricato o meno da molti modi, ad esempio:

if (typeof jQuery.ui == 'undefined') { 

    // jQuery UI IS NOT loaded, do stuff here. 

} 

// OR 

if (typeof jQuery.ui != 'function') { 

    // jQuery UI IS NOT loaded, do stuff here. 

} 

// OR 

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


Problemi correlati