JavaScript onKeyPress zuweisen problem
Ich versuche, fügen Sie ein onKeyPress-Ereignis, um eine dynamisch erstellte html-element per javascript. In der Praxis, dass das element Hinzugefügt wird, wird der id zugeordnet ist, und die innerHTML Hinzugefügt, aber die onmouseover -, onmouseout, und onKeyPress (2. Letzte Zeile) Ereignisse sind nicht hinzugekommen. Die Letzte Zeile (.Fokus()) funktioniert.
Code:
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();
}
Jede Hilfe sehr dankbar,
Nico
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kleinbuchstaben Ihre onKeyPress und eine Funktion verwenden,
Edit: Hinzugefügt bobince's Ratschläge für eine weitere cross-browser-freundliche Antwort.
window.event
. Überall sonst, wird das Ereignis übergeben wird, als argument an den handler-Funktion. Sollten Sie nur setzennewPara.onkeypress= editKeypress
, und ineditKeypress
check für ein argument. dh. traditionell:function editKeypress(e) { if (!e) e= window.event; ...
Ich glaube nicht, dass Sie zuordnen können Zeichenketten bis zu event-Handlern Javascript zwingen kann die Daten aber nicht in diesem Maße. Was Sie tun müssen, stattdessen schreiben Sie den code wie eine Funktion und weisen Sie die Funktion zu den event-handler