我用html + js写一个类似Soulver的应用程序。我需要从输入(突出显示)自定义文本。对于输入我使用<div contenteditable="true"></div>
每次输入div后出现新的div。我该如何分配给它id。或者用\ n覆盖所有内部div,就像在textarea中一样。有什么想法吗?
答案 0 :(得分:1)
在每个keyup
之后,您可以遍历divs
并向其添加attr
:
$('#your-editable-div').live('keyup', function() {
$(this).children('div').each(function(index) {
$(this).attr('id', 'element-'+index);
});
});
答案 1 :(得分:0)
有一点需要注意的是contentEditable并不满足。 IE7因此而中断。
您是否在Mac上使用Firefox进行测试? Chrome和Safari没有相同的问题。
您可以检测Enter键,然后停止默认操作。然后你可以插入任何你想要的东西,而不是浏览器特定的东西。
使用jQuery(未经测试)
//prevent users from typing on datepickers
$("body").delegate('[contentEditable="true"]', "keypress", function(event)
{
//detect and override enter key press
if(event.which==8)
{
event.preventDefault(); /* stop default */
/* More code to insert something at the mouse location */
}
});
有关如何插入光标位置的信息,请参阅此问题 Contenteditable text editor and cursor position