我正在用html+js编写一个类似于Soulver的应用程序。我需要从输入自定义文本(突出显示)。对于输入,每次在div中输入之后,使用<div contenteditable="true"></div>的im都会出现新的div。我如何分配id给它。或者用\n覆盖所有内部div,就像在textarea中一样。有什么想法吗?
发布于 2011-03-31 20:22:06
在每个keyup之后,您可以遍历divs并向其添加attr:
$('#your-editable-div').live('keyup', function() {
$(this).children('div').each(function(index) {
$(this).attr('id', 'element-'+index);
});
});发布于 2011-04-02 23:35:04
有一件事需要注意,那就是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 */
}
});有关如何在光标位置插入的信息,请参阅此问题
https://stackoverflow.com/questions/5499534
复制相似问题