javascript - 如何使用 show-hint 插件订阅 CodeMirror 中的选择事件?

标签 javascript autocomplete codemirror

我想在用户浏览自动完成建议时显示一些附加信息。 documentaion中有关于select事件的内容,但我无法找到如何订阅它(如果可能的话)。

有人可以建议如何订阅该事件吗?或任何其他方法来检测当前选择的是哪一个并检测何时更改?

对此有几个问题,但我找不到任何解决方案。

最佳答案

这些事件不会在内部完成对象上触发,该对象通常在提示提供程序之外不可用,因此不能直接订阅。

无论如何,如果您确实想订阅这些事件,则必须覆盖提示提供程序。例如,

// Some other code defined CodeMirror.hint.foo

var fooHint = CodeMirror.hint.foo;
CodeMirror.hint.foo = function(cm, options) {
    var result = fooHint(cm, options);
    if (result) CodeMirror.on(result, "pick", function() { /* ... */ });
    return result;
};

参见https://github.com/codemirror/CodeMirror/issues/3092 。感谢 marijnh 提供的解决方案。

关于javascript - 如何使用 show-hint 插件订阅 CodeMirror 中的选择事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567525/

相关文章:

python - 类实例的方法参数自动完成

javascript - CodeMirror 在编辑器文本区域上使用 jQuery .keyup

textarea - 比较两个不同 CodeMirror textarea 的变化

php - 使用类似条件jquery访问文本字段

Javascript 原型(prototype)示例 - 改变标准 JavaScript 对象的原型(prototype)

javascript - 聚焦于 HTML 页面的图像

Javascript 使用 Code Mirror 中的 HTML 更新 div

javascript - 在没有旧的 'new Array(N)' 的情况下创建具有 N 个元素的数组的正确方法?

html - 当输入类型为密码时,自动完成 ='off' 不起作用,并在其上方设置输入字段以启用自动完成

knockout.js - 在 knockout 中选择后无法清除自动完成值