【问题标题】:Prevent default events of medium-editor防止媒体编辑器的默认事件
【发布时间】:2017-06-23 13:44:12
【问题描述】:

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

在这个层次结构中

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

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

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

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

e.preventDefault();

});

我尝试textarea 的每一种方式都会获得焦点并且光标开始闪烁。

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

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

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

【问题讨论】:

    标签: javascript medium-editor


    【解决方案1】:

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

    所以,在第 2725 行的 medium-editor.js 中有 setupListener 函数。

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

    mousedown,click,focus.

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

    handleBodyClick,handleBodyFocus,handleBodyMousedown

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

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

    无论如何,据我所知,从源头上看,没有覆盖方法或挂钩来修改 medium-editor 内部事件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      相关资源
      最近更新 更多