首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止媒体编辑器的默认事件

防止媒体编辑器的默认事件
EN

Stack Overflow用户
提问于 2017-06-20 00:09:24
回答 1查看 204关注 0票数 0

我如何用我的自定义事件替换medium-editor的内部触发事件,或者只是简单地改变内部设计的行为?

在此层次结构中

代码语言:javascript
复制
<div>
<textarea class='editable'></textarea>
</div> 

我将单击处理程序绑定到div并执行e.stopPropagation()e.preventDefault()

我也尝试在媒体编辑器的实例化之后添加。

代码语言:javascript
复制
var editor = new MediumEditor('.editable')
.subscribe("editableClick", function(e){

e.preventDefault();

});

每次我尝试的时候,textarea都会聚焦,光标开始闪烁。

例如,初始单击事件将一个元素添加到具有类.medium-editor-element的dom中,我应该深入源代码来修改此行为吗?

或者,我希望它不是通过点击而是双击来工作的。

有人熟悉medium-editor的内部工作原理吗?

EN

回答 1

Stack Overflow用户

发布于 2017-06-23 13:44:13

经过反复试验和开发工具的帮助,我找到了做我想做的事情的方法。但我认为这个问题仍然是可以回答的,因为我是通过修改medium-editor的源代码来解决这个问题的。

因此,在medium-editor.js的第2725行有一个setupListener函数。

有3个主要事件附加到case 'externalInteraction': 2731行。

mousedownclickfocus

从2959行开始,有用于这些事件的附加处理程序。

handleBodyClickhandleBodyFocushandleBodyMousedown

mousedown对于我的情况很重要,因为它是第一个触发的,应该在不同的情况下防止和接受它。

最后,我在源代码中添加了一个dblclickhandleBodyDblClick,然后在handleBodyMousedown中添加了一些逻辑,以防止在某些情况下mousedown事件的默认行为。

无论如何,据我所知,在源代码中没有重写方法或钩子来修改medium-editor内部事件。

如果能有这个功能就太好了。或者如果我错了,我想知道是否有更好的方法来做所有这些事情。

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

https://stackoverflow.com/questions/44635279

复制
相关文章

相似问题

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