Предотвращение стандартных событий редактора среды

Как бы я заменил внутренне инициируемые события среднего редактора на мои собственные или просто изменил внутренне спроектированное поведение?

В этой иерархии

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

Я привязываю обработчик кликов к div и делать e.stopPropagation() а также e.preventDefault(),

Я также пытаюсь добавить после создания экземпляра среднего редактора.

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

e.preventDefault();

});

Каждый раз, когда я пытаюсь textarea фокусируется и курсор начинает мигать.

Например, событие intial click добавляет элемент в dom с классом .medium-editor-element я должен нырнуть в источник, чтобы изменить это поведение?

Или, может быть, я бы хотел, чтобы он работал не с щелчком, а с двойным щелчком.

Кто-нибудь знаком с внутренней работой среднего редактора?

1 ответ

После проб и ошибок и помощи инструментов разработчика я нашел способ делать то, что я хочу. Но я думаю, что этот вопрос все еще отвечает, потому что я сделал это, изменив источник 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 внутренние события.

Было бы неплохо иметь эту функцию. Или, если я ошибаюсь, я хотел бы знать, есть ли лучший способ сделать все это.

Другие вопросы по тегам