Я пытаюсь получить различный источник изображения на основе массива объектов.Выбор источника изображения на лету
Если человек мужчина, он должен отображать men.png.
Если человек женский, он должен отображать female.png.
Проблема в том, что я получаю только женский.png на холсте.
Другая проблема заключается в том, что моя функция обратного вызова не вызывается по порядку переменной цикла.
Вот код.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
<canvas id ="canvas3" width="1100" height="100" ></canvas>
</div>
<script>
var person = [{name:" Mr.Ram T",gender:"Male"}, {name:" Dr.Shila G", gender:"Female"}, {name: " Dr. J Phil", gender:"Male" } , {name:" Mrs. Sita W",gender:"Female"}, {name:" Mrs. Gita W",gender:"Female"}, {name:" Mrs. Rita W",gender:"Female"}];
function myCallBack(ilocal)
{
return function()
{ alert(ilocal);
ctx.drawImage(img, 10+ilocal*180, 5, 20, 20);
};
}
for (i=0;i<6;i++)
{
var canvas = document.getElementById('canvas3');
var ctx = canvas.getContext('2d');
var img = new Image();
if(person[i].gender == "Male")
{
img.src = "men.png";
}
else
{
img.src = "female.png";
}
if (img.complete)
{
ctx.drawImage(img, 10+i*180, 5, 20, 20);
}
else
{
img.onload = myCallBack(i);
}
}
</script>
</body>
</html>
Ссылка на jsfiddle будет большой матом .. :) –