Codemirror中添加ondblClick和click事件

发布于 2024-12-10 10:12:52 字数 134 浏览 0 评论 0原文

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

提前致谢。

I would like to add onDblClick event to codemirror 2. I found that onCursorActivity does not deliverer the event so there is no way for me from this method to filter the events.
How can I implement onDbClick event on Codemirror ?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酷遇一生 2024-12-17 10:12:52

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

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

您可以在 文档

You can call on method on object returned by CodeMirror:

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

You can find the list of all available events in documentation.

别闹i 2024-12-17 10:12:52

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

Register a handler on the element returned by the getWrapperElement() method. Unless you want to not just detect double-clicks, but also prevent the default (select word under mouse cursor) from occurring... in that case I guess some modification of the core code is needed.

她说她爱他 2024-12-17 10:12:52

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

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

Since codemirror renders inside the element specified you can add an ondblclick event to the element, like below the highlighter renders without line numbers once double clicked that specific elements will display line numbers

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]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文