首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有CK编辑器的可拖式模态

带有CK编辑器的可拖式模态
EN

Stack Overflow用户
提问于 2022-09-09 06:54:15
回答 2查看 22关注 0票数 0

我有一个反应引导模式,其中包含一个CK编辑器组件(使用经典编辑器)。我想要使模式可拖,所以我使用的反应-拖拽库。

那部分运作得很好。问题是,当我试图通过拖动鼠标来选择CK编辑器中的文本时,文本不会被选中。相反,模式开始移动。

我需要弄清楚如何防止拖动事件为CK编辑器到达反应拖放组件。

我已经建立了这样的模式:

代码语言:javascript
复制
<Modal className="no-transition" dialogAs={ p => <Draggable><ModalDialog { ...p }></ModalDialog></Draggable> } show={ props.show } size="lg">

...
<CKEditor config={{ height: '500px' }} editor={ ClassicEditor } data={ editorState } onReady={ editor => onEditorReady(editor) }/>
...
</Modal>

在onEditorReady事件处理程序中,我试图拦截,然后停止拖动事件

代码语言:javascript
复制
function onEditorReady(editor) {        
    let el = document.querySelector(".ck-content");
        
    if(el) {
    el.addEventListener("dragstart", (e) => e.stopPropagation());
    }

    editorRef.current = editor;
}

然而,dragstart事件似乎从未真正触发过。在编辑器中选择文本时,是否有更好的方法来防止模式拖放?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-09 07:39:30

好的,在发布这个问题的几分钟内,我看到可拖放组件的cancel属性可以设置为一个css类,当它匹配时,它将阻止它启动拖放。

我将cancel属性设置为.ck-editor,现在它允许选择文本。

票数 1
EN

Stack Overflow用户

发布于 2022-09-09 07:28:40

您可以使用鼠标悬停在ckeditor上的焦点事件,生成一个防止响应拖放的标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73658370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档