将ondblClick和click事件添加到Codemirror

时间:2011-10-17 19:26:00

标签: codemirror

我想将onDblClick事件添加到codemirror 2.我发现onCursorActivity没有传递事件,因此我无法通过此方法过滤事件。 如何在Codemirror上实现onDbClick事件?

提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以在CodeMirror返回的对象上调用on方法:

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

您可以在documentation中找到所有可用活动的列表。

答案 1 :(得分:1)

在getWrapperElement()方法返回的元素上注册处理程序。除非您不仅要检测双击,还要防止默认(鼠标光标下选择单词)发生......在这种情况下,我想需要对核心代码进行一些修改。

答案 2 :(得分:0)

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]);
}