このコードは、配列をループして画像をロードし、画像がロードされたときに通知するコードです。Javascript Image onloadイベントバインディング
for (var i = 0; i < arr.length; i++) {
var imageObj = new Image();
imageObj.src = url[i];
imageObj.onload= (function(i){
return function(){
console.log(i, 'loaded');
}
})(i);
}
正常に動作します。しかし、これを実行しようとすると動作しません。
imageObj.addEventListener('onload', function(
console.log(i, 'loaded');
}, false);
問題は何ですか?この場合、クロージャを使用しないようにする方法はありますか?
唯一の問題ではありませんが、2番目の壊れた例は、JSの最初の行の末尾に 'i' {{{{}}がありません。 – Lambart
ちょうど安全なところにいて、最初にイベントを割り当ててからsrcを割り当ててはいけませんか? – bashan