相干组件版本:avalon 1.3.6
这个题目一般会在以下情形涌现:
页面一加载完就要应用JS动态支配页面的DOM元素、为各种插件赋初值等。
以ueditor为例,以往,合营后端衬着模板,直接就把初始的值输出到页面,ueditor天然就猎取到初始值了;但改成前后端完整星散后,初始值须要依靠ajax读取api取得,然后再挪用ueditor的setContent()要领举行赋值,而ueditor的实例化和初始值的猎取这两个操纵是异步实行的(固然也能够写成同步实行,应用ueditor的ready()要领即可,但整体来讲不太天真),如许就造成了一个不稳定的要素:到底在赋初值的时刻,ueditor实例化好了没有呢?
为此,我思考后,得出以下计划:
var ue = UE.getEditor('content_editor');
function article_create_getFirstData() {
if(typeof(ue) == "object") {
initUeditor();
} else {
setTimeout('article_create_getFirstData()', 500);
}
}
article_create_getFirstData();
其整体思绪是,应用typeof推断预设变量是不是已为object(即已实例化),若否,则定时从新举行推断,直到实例化胜利后,举行赋初值的操纵。