JavaScript на клавишеПресс назначения проблемы - PullRequest
0 голосов
/ 10 октября 2009

Я пытаюсь добавить событие onKeyPress в динамически создаваемый HTML-элемент, используя JavaScript. На практике добавляется элемент, назначается идентификатор и добавляется innerHTML, но события onmouseover, onmouseout и onKeyPress (2-ая последняя строка) не добавляются в элемент. Последняя строка (.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();
}

Любая помощь с благодарностью,

Nico

Ответы [ 2 ]

2 голосов
/ 10 октября 2009

Я не думаю, что вы можете назначать строки обработчикам событий - Javascript может приводить данные, но не до такой степени. Вместо этого вам нужно написать свой код как функцию и затем назначить эту функцию обработчику событий

1 голос
/ 10 октября 2009

Стройте строчные буквы на вашей клавише и используйте функцию

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

Редактировать: Добавлено bobince совет для более кросс-браузерного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...