2013-01-14 65 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