javascript - Ext.onReady() 与 $(document).ready()

标签 javascript jquery dom extjs extjs4

有什么区别?我有 $(document).ready 函数,它应该检查 extjs 是否已加载,但主要问题是 extjs 没有按时加载并且 $(document).ready 中的东西开始执行,extjs 创建函数会产生主要错误 '无法在 Ext.create("...", {..}) 上执行 undefined' 的创建;线。如果我像这样仔细检查:

$(document).ready(function() {
    Ext.onReady(function() {
        Ext.create('Ext.Button', {...});
    });
});

事情神奇地起作用。现在我正在使用 ext-all.js,它缩小了 ~1.3MB,这是相当大的恕我直言……当他进行第二次检查时,事情神奇地加载了……但我认为这两个功能与它们不同定义建议,因为如果我放另一个 $(document).ready 而不是 Ext.onReady() 行,事情会再次中断。我认为 Ext.onReady({});函数执行一些 $(document).ready() 不执行的其他黑魔法,如果有人知道这种魔法是什么,我很感兴趣?

因为它有效而且我不知道为什么这让我很痛苦。

感谢阅读这篇文章。 =) 附言。我使用 ExtJS 大约一天了,所以我对它还很陌生。

最佳答案

不,它们不一样,第一个将在加载 jQuery 库时触发,Ext.onReady(.. 将在加载 ExtJS 库时触发。

如果你想把它们结合起来,你可以这样做:

var extReady = false;
var jQueryReady = false;

var librariesReady = function () {
    if (jQueryReady && extReady) {
        //They're both ready
    }
};

$(document).ready(function () {
    jQueryReady = true;
    librariesReady();    
});
Ext.onReady(function () {
    extReady = true;
    librariesReady();
});

关于javascript - Ext.onReady() 与 $(document).ready(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601054/

相关文章:

javascript - 将数据从 Sails 服务发送到 Controller

javascript - 使用 jQuery 奇怪行为向下拉列表添加选项

javascript - 关于预加载的建议

javascript - NVD3 Angular 指令回调触发得太早

javascript - 如何在 Angular JS 中存储 JSON 响应的值

jquery - 如何打印或迭代附加到元素的每个事件监听器?

javascript - 获取用户在某个区域选择的所有文本节点

javascript - 隐藏表格 当其主体中没有元素时

javascript - 在 javascript jquery 中,通过 js 附加时不显示 html 表格

Jquery AJAX 调用 : $(this) does not work after success