Tester si jQueryUI s'est chargé

129

J'essaie de déboguer un site Web et je pense que jQueryUI ne s'est peut-être pas chargé correctement. Comment puis-je tester si jQueryUI s'est chargé?

waiwai933
la source

Réponses:

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

OU

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

Devrait faire l'affaire

chrismacp
la source
2
mon problème est que je charge jQuery et jQuery.ui dynamiquement. Cela se charge parfois dans le temps, parfois non. Si ui n'est pas chargé, comment puis-je l'attendre (ou le forcer à être chargé) avant d'appeler une méthode?
Gabriel Diaconescu le
17
Je ne sais pas si cela fait une grande différence, mais en allant avec le test de Boilerplate pour jquery, ils l'utilisent window.jQuerydonc pour jQuery UI J'utilise le testwindow.jQuery.ui
Tim B James
cela ne fonctionne pas pour moi. quelqu'un peut-il s'il vous plaît jeter un oeil à ce jsfiddle et me faire savoir si je fais quelque chose de mal. jsfiddle.net/vEvYv/1 Je m'attends à ce que l'instruction else de mon if s'exécute car je ne charge pas jQuery. sauf, il échoue sur la première ligne. Exécutez la page avec la console de votre navigateur ouverte (j'utilise FF) et voyez la lignejQuery is not defined
Dave Haigh
2
@DaveHaigh - vous n'avez pas chargé JQuery. L'interface utilisateur JQuery dépend de JQuery.
Chris Haines
16

Vous devez vérifier si le fichier de bibliothèque d' interface utilisateur jQuery et le thème CSS sont en cours de chargement.

jQuery UI crée des propriétés sur l'objet jQuery, vous pouvez vérifier:

jQuery.ui
jQuery.ui.version

Pour vérifier si le ou les fichiers CSS nécessaires sont chargés, je vous recommande d'utiliser Firebug et de rechercher les fichiers de thème dans l'onglet CSS.

J'ai déjà vu des problèmes lorsque les utilisateurs chargent correctement la bibliothèque d'interface utilisateur jQuery mais que le thème CSS est manquant.

CMS
la source
Pour vérifier si une fonctionnalité particulière est chargée, la vérification ressemblerait à (par exemple pour l'info-bulle) ........................ if( typeof jQuery().tooltip != "undefined" )
jave.web
7

Je sais que c'est une vieille question, mais voici un petit script rapide que vous pouvez utiliser pour envelopper toutes les choses de votre interface utilisateur jQuery qui n'ont pas d'événement associé pour vous assurer qu'elles ne sont exécutées qu'après le chargement de l'interface utilisateur 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();
Mike
la source
3

Testez simplement l'objet ui, par exemple

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

Vous pouvez vérifier si l'interface utilisateur jQuery est chargée ou non de plusieurs manières telles que:

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

OU

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

OU

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
la source