複数の要素にイベントを追加しようとしていますが、今はこのコードがありますが、動作しますが、SetTimeoutを追加したくありません。私がそれを取り除くと、うまくいかない。Javascriptで複数の要素にイベントをアタッチする
これはなぜ起こっているのですか?これにはより良い解決策がありますか?
setTimeout(function() {
var imageElements = document.querySelectorAll("img[class^='image']");
for (var i = 0; i < imageElements.length; i++) {
imageElements[i].addEventListener("click" , function(){
definition(this.classList[0], this);
})
}
},200);
実際の要素がロードされる前にこのスクリプトが実行されている可能性はありますか?スクリプトタグはhtmlの本体の上にありますか? –
イメージは、DOMにまだロードされていない可能性が非常に高いです。コードの残りの部分を見ることなく伝えるのは難しいです。 – Mvarta
@Mvartaはい、そうです。 – Luis