我尝试使用JavaScript向动态创建的html元素添加onKeyPress
事件。实际上,添加了元素,分配了id,并添加了innerHTML
,但onmouseover
、onmouseout
和onKeyPress
(倒数第二行)事件没有添加到元素中。最后一行(.focus()
)可以工作。
代码:
function newParagraphAfter(elem)
{
blockElemId++;
newPara = document.createElement("p");
newPara.id = 'block_' + blockElemId;
newPara.contentEditable = 'true';
newPara.onmouseover = "this.style.border='1px dashed white';";
newPara.onmouseout = "this.style.border='none';";
newPara.innerHTML = "Edit Here!";
elem.parentNode.insertBefore(newPara, elem.nextSibling);
document.getElementById('block_' + blockElemId).onKeyPress = "return editKeypress(this, event)";
document.getElementById('block_' + blockElemId).focus();
}
任何帮助都非常感谢。
2条答案
按热度按时间wlsrxk511#
我不认为你可以把字符串赋给事件处理器-- Javascript可以强制数据,但不会到这种程度。你需要做的是把代码写成函数,然后把函数赋给事件处理器
rn0zuynd2#
小写onKeyPress并使用函数
编辑:添加了bobince的建议,以获得更跨浏览器友好的答案。