javascript - 为什么触发点击 contenteditable 不会激活元素并设置光标

标签 javascript jquery html

我希望 contenteditable 在模拟点击事件上通过光标激活,但这并没有发生——该元素没有被激活。为什么?我需要将光标放在与用户单击的位置完全相同的位置,这就是我使用 click 事件的原因,因为它包含坐标。

我创建了 this演示问题的简单设置(在 contenteditable div 内单击):

HTML

<div contenteditable="true" style="width: 100px; height: 100px; border: 1px solid black;">some text</div>

JS

$(function() {
    var editable = $('[contenteditable]');
    var event, initial = true;
    editable.on('click', function(e) {
        event = e;
        console.log('writing event', event);

        if (initial) {
            initial = false;
            editable.blur();
            setTimeout(function() {
                console.log('trigger click');
                editable.trigger(e);
            }, 3000);
        }
    });
});

最佳答案

我相信您希望触发 focus 事件,该事件会将光标置于框中并允许您编辑内容,而无需实际单击 div 内部。这就是您想要做的吗?

$(function() {
  var editable = $('[contenteditable]');
  setTimeout(function() {
    editable.trigger('focus');
  }, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contenteditable="true" style="width: 100px; height: 100px; border: 1px solid black;">some text</div>

关于javascript - 为什么触发点击 contenteditable 不会激活元素并设置光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775697/

相关文章:

javascript - 通过 JQuery 的表单显示不起作用

javascript - Z-index 似乎没有任何改变

javascript - 合并一个属性相同的对象数组,同时将另一个属性的唯一值传输到数组中

javascript - 如何解决调试期间 JavaScript 严重错误

jquery - 如何捕获 JQuery 中的 JSON 解析错误?

javascript - 关闭嵌入在 HTML 中的 PDF 的缩放

javascript - 滚动时更改导航文本和 Logo 颜色

javascript - 如何清除 THREE.JS 场景

javascript - 如何防止访问者通过检查员查看我的网站?

javascript - 函数结束时看到的 jQuery 隐藏和显示效果