我希望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);
}
});
});
答案 0 :(得分:1)
我相信您正在寻找触发focus
事件,该事件会将光标放在框中并允许您编辑内容,而无需实际点击div内部。那是你想要做的吗?
$(function() {
var editable = $('[contenteditable]');
setTimeout(function() {
editable.trigger('focus');
}, 1000);
});
&#13;
<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>
&#13;