<分区>
我有多个 Canvas 元素:
<canvas class="screen" width="250" height="250" data-json="{{json_encode($board)}}"></canvas>
在我的 javascript 中,我执行以下操作:
var canvas = document.getElementsByClassName('screen');
for (var i = 0; i < canvas.length; i++) {
var podium = new Image();
podium.canvas = canvas[i];
podium.onload = function() {
var coordinates = JSON.parse(podium.canvas.getAttribute('data-json');
console.log(coordinates);
//Later on I add more images or anything else based on coordinates.
}
podium.src = 'my_podium_image.jpg';
}
但是coordinates
始终包含来自最后一个 <canvas>
的数据我的 HTML 中的元素。
但是如果我把 var coordinates = JSON.parse(podium.canvas.getAttribute('data-json');
外面onload
并打印输出,它打印每个 canvas
的 data-json 属性这是正确的,但在 load()
功能它仍然只记录最后一个 Canvas 的数据属性。 (多次,因为 for
循环)
我不知道发生了什么。 :)