【发布时间】:2017-05-16 20:03:06
【问题描述】:
当我坐在 Ace Editor 中基于 keydown 操作的标记顶部时,我正在尝试执行一些操作。
但是,我似乎无法使用简单的 jquery 连接来捕获标记上的事件。
我这样声明我的标记:
var marker =session.addMarker(range, "misspelled", "typo", true);
然后尝试像这样连接事件:
$(document).on('keydown',".misspelled",
function (e) {
//if (e.keyCode == 93)
alert('show popup here');
});
无论我做什么,我都无法在标记元素上触发事件。
我在这里设置了一个 jsbin 示例: http://jsbin.com/xowaledobi/5/edit?html,output
并使用点击使其更容易玩。单击标记时 - 没有任何反应。查看 DOM 我可以看到标记和我的自定义样式:
并且基于选择该节点,它看起来可以通过 UI 访问,但我似乎仍然无法在其上触发任何事件。 click 或 keydown 都不会导致任何事情发生。
那么 - 在 Ace Editor 标记中捕获关键事件的最佳方式是什么?
ps 在应用程序的另一部分,我使用了右键单击弹出处理程序,并且我使用了相当昂贵的代码,将标记 ID 和位置映射到当前鼠标位置。它适用于鼠标操作,但对于键盘操作来说太慢了。
【问题讨论】:
标签: ace-editor