Javascript CodeMirror OnSelect事件不工作

Javascript CodeMirror OnSelect事件不工作,javascript,events,codemirror,Javascript,Events,Codemirror,请参见末尾的“编辑” 我刚刚开始用它来做一个项目,我面临着一个我完全不理解的问题 问题在于如何处理CodeMirror的事件,特别是在select事件上,因为我在处理更改事件时没有遇到问题,所以我无法猜测发生了什么 让我们看一些代码;我将一个CodeMirror对象包装到另一个对象中,它看起来类似于: function expressionEditor(config) { jQuery('#divEditor').append('<textarea id="express

请参见末尾的“编辑”

我刚刚开始用它来做一个项目,我面临着一个我完全不理解的问题

问题在于如何处理CodeMirror的事件,特别是在select事件上,因为我在处理更改事件时没有遇到问题,所以我无法猜测发生了什么

让我们看一些代码;我将一个CodeMirror对象包装到另一个对象中,它看起来类似于:

function expressionEditor(config)
{
    jQuery('#divEditor').append('<textarea id="expression"/>');

    this.editor = CodeMirror.fromTextArea(document.getElementById('expression'),
    {
      mode:        'custom',
      lineNumbers: true,
      extraKeys:   {'Ctrl-Space': 'autocomplete'}
    });

    this.OnChange = function(instance, object)
    {
      if (object.text[0] === '.')
      {
        CodeMirror.showHint(this.editor, CodeMirror.hint.custom);
      }
    };

    this.OnSelectHint = function(completion, Element)
    {
      alert(completion + ' : ' + Element);
    };

    CodeMirror.on(this.editor, 'change', jQuery.proxy(this.OnChange, this));

    CodeMirror.on(this.editor, 'select', jQuery.proxy(this.OnSelectHint, this));
}
正如我所说,事件更改按预期工作,当我在编辑器中写入一个点时,它会调用调用调用提示列表的函数this.OnChange,但是当我浏览建议的提示时,this.OnSelectHint函数永远不会被调用,导航器上不会弹出警报

根据about select事件,在选择完成时必须触发回调。传递了完成值字符串或对象以及在菜单中表示它的DOM节点

由于其他活动都在进行,我完全迷路了。。。有什么线索吗

编辑 正如所说,CodeMirror中没有选择事件;select事件来自show hint CodeMirror加载项。只是想知道:

如何处理CodeMirror插件触发的事件? CodeMirror API中没有选择事件。因此,监听它将毫无用处。

问题在于,show提示中的select事件是在自动完成建议数组上触发的,而不是在CodeMirror编辑器本身上触发的

如上所述,您可以通过包装show-hint函数在该对象上设置事件处理程序。例如,使用sql提示加载项:

const sqlHint=codemirr.hint.sql; CodeMirror.hint.sql=cm,选项=>{ const result=sqlHintcm,选项; 如果结果{ CodeMirror.onresult“已显示”,自动完成显示; CodeMirror.onresult“选择”,onAutocompleteSelect; } 返回结果; }
下面是事件处理程序onAutocompleteShown和onAutocompleteSelect。

My bad!没错,我错读了文档,select事件来自hint/show-hint.js CodeMirror插件!,我将编辑此问题以解决此问题