Добавьте ondblClick и щелкните событие в Codemirror - PullRequest
1 голос
/ 17 октября 2011

Я хотел бы добавить событие onDblClick в codemirror 2. Я обнаружил, что onCursorActivity не доставляет событие, поэтому у меня нет способа отфильтровать события из этого метода.Как я могу реализовать событие onDbClick на Codemirror?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 06 декабря 2013

Вы можете вызвать on метод для объекта, возвращенного CodeMirror:

var cm = CodeMirror.fromTextArea(document.querySelector('textarea'));
cm.on('dblclick', function() {
   alert('You double click the editor');
});

Список всех доступных событий можно найти в документации .

1 голос
/ 19 октября 2011

Зарегистрировать обработчик для элемента, возвращаемого методом getWrapperElement (). Если вы не хотите не просто обнаружить двойной щелчок, но и предотвратить появление по умолчанию (выберите слово под курсором мыши) ... в этом случае я полагаю, что необходима некоторая модификация кода ядра.

0 голосов
/ 20 февраля 2013

http://jsfiddle.net/yusafkhaliq/NZF53/1/

Поскольку codemirror визуализируется в указанном элементе, вы можете добавить к нему событие ondblclick, как показано ниже, при выделении маркера без номеров строк после двойного щелчка на определенных элементах будут отображаться номера строк

var codeelems = document.getElementsByClassName("code");
for (i = 0; i < codeelems.length; i++) {
    (function ($this) {
        var value = $this.innerHTML;
        $this.innerHTML = "";            
        var editor = CodeMirror($this, {
            value: value,
            mode: "text/javascript",
            lineNumbers: false
        });
        $this.ondblclick = function () {
            editor.setOption("lineNumbers", true);
        }
    })(codeelems[i]);
}
...