ueditor二次渲染,ueditor第二次加载不出来的解决方案
ueditor二次渲染,ueditor第二次加载不出来的解决方案
今天我使用UEditor的时候发现第二次加载不出来:
我使用的是JQuery Easyui的弹窗插件,因为是异步的编辑或者新增一条信息。
第一次打开的时候没有问题,当关闭窗口第二次打开就加载不出来了,要重新刷新。
由于前天刚使用了layui的上传插件,也是第二次加载不出来,看官方文档有一个重新解析,我就去UEditor上找这个方法,可是找不到,只有去看源码了:
看到的源码如下:
UE.getEditor = function (id, opt) {
var editor = instances[id];
if (!editor) {
editor = instances[id] = new UE.ui.Editor(opt);
editor.render(id);
}
return editor;
};
UE.delEditor = function (id) {
var editor;
if (editor = instances[id]) {
editor.key && editor.destroy();
delete instances[id]
}
};
可以看到在调用 UE.getEditor 的时候先从instances取出,不存在了再实例化,第二次调用的时候还是调用了instances中那个,并没有重新实例化,由此问题在此。看看代码,改写一下,
在 UE.getEditor后面再追加一个方法render,或者先调用UE.delEditor删除后再执行。
var ue = UE.getEditor('选择器',{zIndex:9003}).render('选择器');
UE.delEditor('选择器');
UE.getEditor('选择器');
于是乎赶紧写成文档保存下来,以备后用。
请先登录后再评论登录