2010-02-14 64 views

回答

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

OR

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

應該做的伎倆

+1

我的問題是我加載jQuery和jQuery.ui動態。它有時會加載,有時不會。如果ui沒有加載,我怎麼能在調用任何方法之前等待它(或強制它被加載)? – 2011-09-14 10:10:28

+0

到目前爲止似乎工作... – David 2011-09-26 03:17:42

+17

不知道這是否有很大的不同,但與Boilerplate的測試jQuery的,他們使用'window.jQuery'因此對於jQuery UI我使用測試'window.jQuery。 ui' – 2011-11-22 11:31:58

3

只需測試UI對象,例如

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

您需要檢查,如果兩者的jQuery UI的文件和CSS主題被加載。

jQuery UI的創建jQuery對象的屬性,你可以檢查:

jQuery.ui 
jQuery.ui.version 

要檢查是否必要的CSS文件(S)被加載,我會建議你使用Firebug,並尋找主題CSS選項卡上的文件。

我見過問題之前,當用戶正確加載jQuery UI庫,但CSS主題丟失。

+0

要檢查是否一些特定功能被裝載檢查看起來像(例如對於工具提示)........................'if(typeof jQuery()。tooltip!=「undefined」)' – 2016-05-05 09:29:38

6

我知道這是一個老問題,但在這裏是一個小巧的腳本,你可以用它來包裝你所有的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(); 
0

You c如果jQuery的用戶界面的檢查是通過許多方式實現,例如裝入或不:

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