如何模拟内容可编辑元素上的可编辑点击
How to simulate editable click on content editable element
这是我的html代码
<ul class="options-list">
<li contenteditable="true">Customer List</li>
<li contenteditable="true">Product List</li>
</ul>
当用户单击第一个 li 时,内容变得可编辑,第二个div 也会发生同样的情况。现在的要求是,在编辑第一个 li 时,如果用户按 Enter 键,我需要停止编辑第一个 li 并移动到第二个 li 并自动启动编辑模式。
这是我的JS代码
$('.options-list').on('keypress', 'li', function (e) {
if (e.keyCode === 13) {
$(e.currentTarget).blur(); //this works
$(e.currentTarget).siblings('li').click(); // this doesn't work
return false;
}
})
任何帮助将不胜感激
代替.click()
,你可以使用 .focus()
。
例如:
$('.options-list').on('keypress', 'li', function (e) {
if (e.keyCode === 13) {
$(e.currentTarget).blur();
$(e.currentTarget).siblings('li').focus();
return false;
}
})
一个jsfiddle演示在这里。
将$(e.currentTarget).siblings('li').click();
更改为$(e.currentTarget).next('li').focus();
而不是使用.siblings('li').click();
您可以使用.next('li').focus();
这将帮助您将焦点移动到下一个 li 元素,
此外,.siblings('li')
会将其移动到列表的最后一个 li 元素,
但.next()
会连续将焦点转移到下一个 Li 元素上。
试试这个 jsfiddle 演示示例
谢谢。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- javascript正则表达式,用于编辑元素内部的css样式属性
- 在此内容可编辑元素中获取当前行和行索引
- 防止文本在内容可编辑元素中突出显示时被删除
- 如何防止用户在内容可编辑元素中键入新行
- 如何自动调整内容可编辑元素的大小
- 如何在内容可编辑元素中的文本失去焦点时保持该元素处于选中状态
- 如何模拟内容可编辑元素上的可编辑点击
- 在内容可编辑元素上按 Enter 时插入 BR 或 P 标签的跨浏览器方式
- 一行仅用于内容可编辑元素
- 将内容可编辑元素替换为有序列表时保持可编辑性
- 内容不包含在内容可编辑元素中
- 如何在内容可编辑元素中获取所选元素
- 可编辑元素,覆盖不起作用的原始文本(x-Editable)
- 正在设置内容可编辑元素的最大大小
- 设置插入符号在内容可编辑元素中的位置
- 如何使用React.js编辑元素'
- 在线源代码编辑元素
- 具有可编辑元素的表单应该具有' edit - Form '属性
- 在angular-x-editable示例代码中,带有可编辑元素的表单应该有' edit - Form '属性