[英]JavaScript onKeyPress assigning problem
我正在尝试使用javascript将onKeyPress事件添加到动态创建的html元素中。 实际上,将添加元素,分配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();
}
任何帮助,我们将不胜感激,
尼科
我认为您不能为事件处理程序分配字符串-Javascript可以强制数据,但不能达到这种程度。 您需要做的是将代码作为一个函数编写,然后将该函数分配给事件处理程序。
小写onKeyPress并使用功能
document.getElementById('block_' + blockElemId).onkeypress = function(e) {
if(!e) e = event;
return editKeypress(this, event)
};
编辑:添加了bobince的建议,以获得更跨浏览器友好的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.