私のアプリケーションに動的に要素にイベントを適用しようとしています。javascript setAttribute動的に
私が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要素に追加されません取得し、私は関数から何の結果を得るません。
EventListenerはオプションではありませんか?これはあなたの必要としているように見えます... –
属性ではなくDOMプロパティを設定したいとします。属性はHTML(デフォルト状態)で設定されます。 –
@Matt - どのようにDOMプロパティを設定しますか? – webdad3