cdnjsjsDeliverunpkgSelf hosted

カメリアの記事

意味があることやないことを綴ります

JavaScriptでイベントが取得できない

イベントが取得できない、発火しない、と困っていました。下のようなコードです。

let element = null
new Promise(resolve => {
  // 処理
})
.then(rly => {
  element.innerHTML = rly
})
element.onclick = () => {
  // 処理
}

これだと onclick が取得できません。タイミングの問題で element.innerHTML = rly する前に element.onclick が発行されます。これでは null にイベントリスナーが紐付いてしまいます。なので下のようにしました。

let element = null
new Promise(resolve => {
  // 処理
})
.then(rly => {
  element.innerHTML = rly
  element.onclick = () => {
    // 処理
  }
})