1
當我單擊按鈕時,以下代碼應該在網格中顯示圖像。問題是我必須點擊按鈕兩次才能看到圖像。即使圖像不顯示,我也可以在兩個函數調用中獲得日誌輸出。這是怎麼回事?第一次函數調用時未顯示圖像 - HTML5/Canvas
編輯:我發現問題只發生在鉻開發工具打開時,所以它不是一個JavaScript問題。
EDIT2:除了公認的答案,這個環節幫我:Javascript Canvas Element - Array Of Images
<html>
<head>
<title>Canvas Test</title>
<script>
function init() {
var canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
images = new Array();
}
function drawImage() {
for (var i = 0; i < 12; i++) {
for (var j = 0; j < 12; j++) {
var index = i*12 + j;
images[index] = new Image();
images[index].src = 'image.jpg';
images[index].onload = function(image, index, i, j) {
console.log(index);
context.drawImage(image, i * 20, j * 20, 20, 20);
console.log("Loading image: " + image.src);
} (images[index], index, i, j);
}
}
}
</script>
</head>
<body onload="init();">
<canvas id="canvas" width="300px" height="300px" style="border: solid;"></canvas>
<button onclick="drawImage();">Display Image</button>
</body>
</html>
它的工作,但爲什麼? – gsingh2011
這是你所期望的嗎? http://jsfiddle.net/DerekL/W5cBn/3/(新) –
是的,這就是我在代碼上運行時得到的結果。但我不明白你的改變爲什麼會有所作爲。 – gsingh2011