我正在尝试将onkeypress事件添加到动态创建的p
元素中。这适用于Firefox,Opera和Chrome,但不适用于IE。
我的代码:
function newParagraphAfter(elem)
{
blockElemId++;
newPara = document.createElement("p");
newPara.id = 'block_' + blockElemId;
newPara.innerHTML = "Edit Here!";
elem.parentNode.insertBefore(newPara, elem.nextSibling);
document.getElementById('block_' + blockElemId).contentEditable = 'true';
document.getElementById('block_' + blockElemId).focus();
document.getElementById('block_' + blockElemId).onkeypress = function(event){return editKeypress(this, event)};
document.getElementById('block_' + blockElemId).onkeydown = function(event){return editKeydown(this, event)};
document.getElementById('block_' + blockElemId).onblur = function(){deleteIfBlank(this);};
}
添加id适用于所有浏览器,添加innerHTML也有效。更改背景颜色的测试(document.getElementById('block_' + blockElemId).style.backgroundColor = "#666";
也适用于所有浏览器。
但是,添加onkeypress,onkeydown和onblur事件以及.focus()
行的行在IE中不起作用。
提前感谢您的帮助,
尼科
更新:
如果可以避免使用jquery,我宁愿不要使用jquery,因为我希望能够修改项目中的所有代码,而不是使用任何第三方库。我还必须学习一种全新的编码方式,如果可以避免的话,我宁愿不去做。
contenteditable = 'true'
行完美无缺。