测试jQueryUI是否已加载

wai*_*933 127 javascript jquery-ui

我正在尝试调试一个网站,我认为jQueryUI可能没有正确加载.如何测试jQueryUI是否已加载?

chr*_*acp 240

if (jQuery.ui) {
  // UI loaded
}
Run Code Online (Sandbox Code Playgroud)

要么

if (typeof jQuery.ui != 'undefined') {
  // UI loaded
}
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩

  • 不确定这是否有很大的不同,但是使用Boilerplate的jquery测试,他们使用`window.jQuery`所以对于jQuery UI我使用测试`window.jQuery.ui` (17认同)
  • 我的问题是我动态加载jQuery和jQuery.ui。它有时会及时加载,有时则不会。如果未加载ui,如何在调用任何方法之前等待它(或强制加载它)? (2认同)
  • @DaveHaigh - 你还没有加载JQuery.JQuery UI依赖于JQuery. (2认同)

CMS*_*CMS 16

您需要检查是否同时加载了jQuery UI Library文件和CSS Theme.

jQuery UI在jQuery对象上创建属性,您可以检查:

jQuery.ui
jQuery.ui.version
Run Code Online (Sandbox Code Playgroud)

要检查是否加载了必要的CSS文件,我建议您使用Firebug,并在CSS选项卡上查找主题文件.

我之前遇到过问题,当用户正确加载jQuery UI库但缺少CSS主题时.


Mik*_*ike 7

我知道这是一个老问题,但是这里有一个快速的小脚本,您可以用它来包装所有没有关联事件的jQuery UI,以确保它们只在加载jQuery UI后才能执行:

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();
Run Code Online (Sandbox Code Playgroud)


bdl*_*bdl 5

只需测试 ui 对象,例如

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