0

我将如何用我的自定义事件替换媒体编辑器的内部触发事件,或者只是改变内部设计的行为?

在这个层次结构中

<div>
<textarea class='editable'></textarea>
</div> 

我将点击处理程序绑定到divand do e.stopPropagation()and e.preventDefault()

我也尝试在中等编辑器实例化后添加。

var editor = new MediumEditor('.editable')
.subscribe("editableClick", function(e){

e.preventDefault();

});

我尝试的每一种方式textarea都会集中注意力,光标开始闪烁。

例如,初始点击事件将一个元素添加到带有类的 dom.medium-editor-element我应该潜入源以修改此行为吗?

或者,也许我希望它不是单击,而是双击。

有熟悉mediumeditor内部工作的人吗?

4

1 回答 1

0

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

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

case 'externalInteraction':第2731 行有 3 个主要事件。

mousedown, click, focus.

从第 2959 行开始,附加了这些事件的处理程序。

handleBodyClick, handleBodyFocus,handleBodyMousedown

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

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

无论如何,从源头上我可以理解,没有覆盖方法或挂钩来修改medium-editor内部事件。

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

于 2017-06-23T05:44:12.700 回答