获得最令人满意的按键事件的包含范围

时间:2016-05-18 08:21:17

标签: javascript jquery html5

(在Debian / Linux上使用最近的Firefox v45,如果重要的话)

我的网络文档中包含以下元素:

<div id="mom_minieditcontentdiv_id" contenteditable="true">
<span id="mom$miniedit__3TnS01Ncdw7tV1" class="mom_minieditvalue_cl">°</span>
</div>

(实际上,该<div id="mom_minieditcontentdiv_id"元素的DOM子元素正在动态变化)

我输入了键 a ,焦点位于上方的°符号之后。浏览器(正如我所料)将DOM更新为:

 <div id="mom_minieditcontentdiv_id" contenteditable="true">
 <span id="mom$miniedit__3TnS01Ncdw7tV1" class="mom_minieditvalue_cl">°a</span>
 </div>

在javascript中,我使用Jquery2,全球var $contentdiv;$(document).ready时间初始化:

    $contentdiv = $('#mom_minieditcontentdiv_id');

我后来设置了事件处理程序:

$contentdiv.on('input', function(ev) {
console.log("miniedit $contentdiv=", $contentdiv, " input ev=", ev, 
            " $(this)=", $(this));
});
$($contentdiv).keypress(function(ev) {
console.log("miniedit $contentdiv=", $contentdiv, " keypress ev=", ev, 
            " $(this)=", $(this));
});

如何让这些事件处理程序处理<span>经过调整和编辑的id="mom$miniedit__3TnS01Ncdw7tV1",即实际处理inputkeypress事件的范围?我是否需要明确处理焦点事件?

(FWIW,实际和完整代码是MELT monitor(GPLv3 +许可下的免费软件),提交be9a045349674d01bb9...

那么,如何为我的可疑<span>处理的某个键盘(inputkeypress)事件获取包含div的最近(最内部,也就是最深) (即$contentdiv)?

我的动机是尝试编写一些结构化编辑器。因此,对于每个键盘事件,我需要获得由该事件处理的最里面的<span,即具有&#34;焦点&#34;。

0 个答案:

没有答案