我正在尝试在网络应用中实现元素的内联编辑。我正在使用contenteditable
执行此操作,以便在用户编辑元素时保留格式。
用户双击一个元素后,我将其contenteditable
属性设置为true
并选择文本(使用此SO question中的方法),以便他们可以开始编辑马上而不必选择文字。这在Chrome和Safari中可以正常工作(不关心IE)。 然而,在Firefox中,文本确实被选中,但是在您取消选择并手动重新选择文本之前它是不可编辑的。(例如,如果您双击某个元素,它会被选中,但如果您开始输入要编辑所选文本,不会发生任何事情)
我已尝试stopPropagation()
,preventDefault()
和execCommand('selectAll', false, null)
无济于事。
这是一个JSFiddle来向您展示我在说什么。在Chrome / Safari和Firefox中试用它,看看Firefox中的问题。
$('#title').dblclick(function(){
$('#title').attr({'contenteditable' : true});
$('#title').css({'border-bottom' : '3px dashed #E3E1E4'});
selectText('title');
});
答案 0 :(得分:1)
将以下行添加到dblclick处理程序:
$('#title').focus();