Проверка загрузки jQueryUI


131

Я пытаюсь отладить веб-сайт и думаю, что jQueryUI, возможно, не загрузился должным образом. Как я могу проверить, загрузился ли jQueryUI?

Ответы:


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

ИЛИ

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

Должен сделать трюк


2
Моя проблема в том, что я загружаю jQuery и jQuery.ui динамически. Иногда он загружается вовремя, иногда нет. Если пользовательский интерфейс не загружен, как я могу дождаться его (или заставить его загрузиться) перед вызовом любого метода?
Габриэль Диаконеску

17
не уверен, имеет ли это большое значение, но, идя с тестом Boilerplate для jquery, они используют, window.jQueryпоэтому для пользовательского интерфейса jQuery я использую тестwindow.jQuery.ui
Тим Б. Джеймс,

это не работает для меня. может кто-нибудь, пожалуйста, взгляните на этот jsfiddle и сообщите мне, если я что-то делаю не так. jsfiddle.net/vEvYv/1 Я ожидаю, что другой оператор if будет запущен, потому что я не загружаю jQuery. за исключением того, что он не работает в первой строке. Запустите страницу с открытой консолью браузера (я использую FF) и увидите строкуjQuery is not defined
Дэйв Хей

2
@DaveHaigh - вы не загрузили JQuery. Пользовательский интерфейс JQuery зависит от JQuery.
Крис Хейнс

16

Вам необходимо проверить, загружаются ли и файл библиотеки пользовательского интерфейса jQuery, и тема CSS .

Пользовательский интерфейс jQuery создает свойства объекта jQuery, вы можете проверить:

jQuery.ui
jQuery.ui.version

Чтобы проверить, загружены ли необходимые файлы CSS, я бы порекомендовал вам использовать Firebug и поискать файлы темы на вкладке CSS.

Раньше я видел проблемы, когда пользователи правильно загружали библиотеку пользовательского интерфейса jQuery, но тема CSS отсутствовала.


Чтобы проверить, загружена ли какая-то конкретная функция, проверка будет выглядеть (например, для всплывающей подсказки) ........................ if( typeof jQuery().tooltip != "undefined" )
jave.web

7

Я знаю, что это старый вопрос, но вот небольшой небольшой сценарий, который вы можете использовать, чтобы обернуть все ваши элементы пользовательского интерфейса jQuery, которые не имеют связанного события, чтобы убедиться, что они выполняются только после загрузки пользовательского интерфейса 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

Просто проверьте объект ui, например

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

1

Вы можете проверить, загружен ли пользовательский интерфейс jQuery, многими способами, например:

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

ИЛИ

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

ИЛИ

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.