浅谈layer.open的弹出层中的富文本编辑器为何不起作用!

时间:2023-03-09 06:14:58
浅谈layer.open的弹出层中的富文本编辑器为何不起作用!

很多童鞋都喜欢用贤心的layui框架。是的,我也喜欢用,方便,简单。但是呢,有时候项目中的需求会不一样,导致我们用的时候,显示效果可能会不一样,好吧。这样的话,个别遇到的问题总是解决不好,但是呢还是那句话,多研究一下,就都会有解决方法的。

最近做的项目需求就是富文本编辑器要在弹出框中显示,好吧。本来以为可以没任何阻碍,后来发现编辑器在弹出框中总是不灵活,甚至图标都打不开

我想很多童鞋的写法是这样的:

1.首先建立编辑器

       layui.use('layedit', function() {
var layedit = layui.layedit;
layedit.build('demo', {
height:155
}); //建立编辑器
});

2.在弹出框中打开编辑器

 $(document).on("click", ".crateNewMsgBtn", function () {
layer.open({
title: '发送新消息',
type: 1,
move: false,
content: $('.newMsgDiv'),
area: ['500px', '500px']
});

3.发现编辑器可以在弹出框中打开,但是呢,富文本编辑器不起作用。是不是?

那么这到底是什么原因导致的呢?思来想去,应该是渲染不成功的原因导致的。大家先都是将编辑器在页面中渲染成功了。但是,我们的弹出框打开的时候,一些内在的方法可能会导致渲染出现问题,所以要如何去解决这个问题呢?

我是这样做的:

 $(document).on("click", ".crateNewMsgBtn", function () {
layer.open({
title: '发送新消息',
type: 1,
move: false,
content: $('.newMsgDiv'),
area: ['500px', '500px']
});//打开弹出框
layui.use('layedit', function() {
var layedit = layui.layedit;
layedit.build('demo', {
height:155
}); //建立编辑器
});
});

将建立编辑器写在弹出框之后,这样的话,问题就解决了。就不会出现编辑器不起作用了!

如果你也遇到这样的问题,可以尝试一下这种方法了

总结:在用layui的时候,也会遇到各种其他的问题,有时间我会将遇到的问题以及解决方法展示出来,以供遇到同样问题的童鞋参考一下 
如果还有不懂的童鞋,可以给我留言你的问题。