我想添加一個onKeyPress事件動態創建的HTML元素使用JavaScript。實際上,添加元素,分配id,添加innerHTML,但onmouseover,onmouseout和onKeyPress(倒數第二行)事件不會添加到元素中。最後一行(.focus())確實有效。JavaScript的onKeyPress分配問題
代碼:
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();
}
任何幫助非常感謝,
尼科
非常感謝Gordon,我總是想知道那些匿名函數的含義是什麼。 – 2009-10-09 21:56:15
由於全局'window.event',這隻適用於IE。在其他地方,事件作爲處理函數的參數傳遞。你應該設置'newPara.onkeypress = editKeypress',並在'editKeypress'中檢查一個參數。即。傳統上:'function editKeypress(e){if(!e)e = window.event; ...' – bobince 2009-10-09 23:37:20