JavaScript onKeyPress赋值字符串

gudnpqoy  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(130)

我尝试使用JavaScript向动态创建的html元素添加onKeyPress事件。实际上,添加了元素,分配了id,并添加了innerHTML,但onmouseoveronmouseoutonKeyPress(倒数第二行)事件没有添加到元素中。最后一行(.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();
}

任何帮助都非常感谢。

wlsrxk51

wlsrxk511#

我不认为你可以把字符串赋给事件处理器-- Javascript可以强制数据,但不会到这种程度。你需要做的是把代码写成函数,然后把函数赋给事件处理器

rn0zuynd

rn0zuynd2#

小写onKeyPress并使用函数

document.getElementById('block_' + blockElemId).onkeypress = function(e) {
    if(!e) e = event;
    return editKeypress(this, event)
};

编辑:添加了bobince的建议,以获得更跨浏览器友好的答案。

相关问题