Я пытаюсь динамически применить событие к элементу в моем приложении.
Когда я использую onclick, я получаю предупреждение, чтобы всплыть.
el.setAttribute('onclick', 'alert("hi")',0);
Когда я пытаюсь использовать onkeypress, ничего не происходит.
el.setAttribute('onkeypress', 'alert("Hi");',0);
Мне действительно нужно иметь доступ к onkeypress. Есть ли что-то, что я делаю неправильно? Является ли setAttribute не лучшим способом добиться того, что я делаю? Если да, каковы мои альтернативы динамической установке события для определенного элемента?
UPDATE:
Чтобы ответить на несколько вопросов ниже, когда я это сделаю:
el.setAttribute('onkeypress','numericOverride(this)',0);
Когда я смотрю на источник в Firebug, я вижу следующее:
<div id="objSCR" class="txtbox" onmousedown="pfocus(this, '', '');" style="color:#0000FF; width:62px; height:12px; top:76px; left:120px; text-align:right; color:#0000FF;" ptmulti="false" pttype="E" ptlayndx="4" ptdisp="false" ppopup="" plength="12" onchange="numericOverride(this)">4000.00</div>
Однако, когда я изменяю значение текста, я получаю вывод этой функции:
function numericOverride(val){
console.log('hello');
}
Когда я пытаюсь сделать следующее:
el.onchange = function() { numericOverride(this) }
Ничего не добавляется в div, и я не получаю результата от функции.