繁体   English   中英

JavaScript onKeyPress分配问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM