【问题标题】:How to identify a active contentEditable div inside another div which has multiple contentEditable divs如何在另一个具有多个 contentEditable div 的 div 中识别活动的 contentEditable div
【发布时间】:2020-12-11 20:49:09
【问题描述】:

这是简单的标记:

<div id="myId1">
    <div id="contentEdit1" contentEditable="true></div>
    <div id="contentEdit2" contentEditable="true></div>
    ...
</div>

这里是 jQuery 代码:

$('#myId1 ' + '[contenteditable="true"]').on('keydown', function(ev) {
    console.log($(this).attr('id'));
});

问题在于,当我开始编辑任何 contentEditable div 时,根本不会触发事件处理程序。有什么想法吗?

编辑:我的问题有一个错字。我错过了 [contenteditable="true"] 周围的单引号和 console.log 的右括号。

【问题讨论】:

    标签: jquery contenteditable


    【解决方案1】:

    试试

    $('#myId1 [contenteditable="true"]').on('keydown', function(ev) {
        console.log($(this).attr('id'));
    });
    

    演示 - https://codepen.io/vyspiansky/pen/vYGgEZj

    其实你有一个错误的元素选择器'#myId1 ' + [contenteditable="true"] + 不要关闭console.log之后的括号。

    【讨论】:

    • 我的问题出在我动态生成的父选择器中。您的回答澄清了我的方法并没有错,我不得不寻找其他地方。
    • 有没有办法找出哪个 contenteditable div 具有焦点,知道使用 CSS 的父级选择器?我知道可以使用 Javascript 遍历所有这些,看看它是否是焦点。我知道这是一个不同的问题,但如果你能回答,那会有所帮助。
    • @Sunny 你试过:focus吗?文档 - developer.mozilla.org/en-US/docs/Web/CSS/:focus 以下演示集以红色为焦点 div。看看 - codepen.io/vyspiansky/pen/gOrgrep
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多