2013-01-14 63 views
3

無論如何,不​​僅要檢測到jquery UI加載,還要在事件發生時觸發事件?現在我的代碼已經包裝在$(document).ready()函數中,但是由於UI庫沒有完全加載(所有內容都按照正確的順序加載),UI代碼有時會出錯。該代碼在99%的時間內工作,但大約1%的用戶得到與未加載的UI有關的javascript錯誤。JQuery UI加載事件?

$(document).ready(function() { 
    jQuery.ui.ready(function() { .... 

事情是這樣的可能什麼嗎?

謝謝。

+1

您是否將腳本包含在文檔的頭部? – MatRt

+0

確保您的jQuery代碼位於對jQueryUI的引用之後。在加載jQueryUI之前,您的代碼不應執行。 –

+0

一切都包含在頭部,jquery在jQuery UI之前加載。該代碼在99%的時間內完美工作,它與延遲問題或瀏覽器加載速度有關。 – Danny

回答

4

你可以嘗試用getcript加載插件如jQuery的UI和其他和保持就緒功能(S)的腳本滿載

// Hold the ready function(s) 
$.holdReady(true); 

// Retrieve the script and unlock the ready function(s) when the script is loaded 
$.getScript("myplugin.js", function() { 
    $.holdReady(false); 
}); 

之前讓你準備功能的簡單

$(document).ready(function() { 

    // your code here 

}); 
+0

好主意,我不知道這個選項。我認爲這應該工作。謝謝! – Danny

+0

閱讀文檔以獲取更多信息:http://api.jquery.com/jQuery.holdReady/ – MatRt

0

我在過去碰到類似的問題。使用這個:

if (typeof jQuery.ui != 'undefined') { 
    //do something 
} 

希望這會有所幫助!

+1

這隻會在程序上檢查,一旦檢查通過,它不會返回到重試。這就是我需要的,因爲如果它沒有定義,我需要在確定後調用它。 – Danny