我如何用我的自定义事件替换medium-editor的内部触发事件,或者只是简单地改变内部设计的行为?
在此层次结构中
<div>
<textarea class='editable'></textarea>
</div> 我将单击处理程序绑定到div并执行e.stopPropagation()和e.preventDefault()。
我也尝试在媒体编辑器的实例化之后添加。
var editor = new MediumEditor('.editable')
.subscribe("editableClick", function(e){
e.preventDefault();
});每次我尝试的时候,textarea都会聚焦,光标开始闪烁。
例如,初始单击事件将一个元素添加到具有类.medium-editor-element的dom中,我应该深入源代码来修改此行为吗?
或者,我希望它不是通过点击而是双击来工作的。
有人熟悉medium-editor的内部工作原理吗?
发布于 2017-06-23 13:44:13
经过反复试验和开发工具的帮助,我找到了做我想做的事情的方法。但我认为这个问题仍然是可以回答的,因为我是通过修改medium-editor的源代码来解决这个问题的。
因此,在medium-editor.js的第2725行有一个setupListener函数。
有3个主要事件附加到case 'externalInteraction': 2731行。
mousedown,click,focus。
从2959行开始,有用于这些事件的附加处理程序。
handleBodyClick、handleBodyFocus、handleBodyMousedown
mousedown对于我的情况很重要,因为它是第一个触发的,应该在不同的情况下防止和接受它。
最后,我在源代码中添加了一个dblclick和handleBodyDblClick,然后在handleBodyMousedown中添加了一些逻辑,以防止在某些情况下mousedown事件的默认行为。
无论如何,据我所知,在源代码中没有重写方法或钩子来修改medium-editor内部事件。
如果能有这个功能就太好了。或者如果我错了,我想知道是否有更好的方法来做所有这些事情。
https://stackoverflow.com/questions/44635279
复制相似问题