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é?

Réponses:


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

OU

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

Devrait faire l'affaire


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.


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

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>

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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.