 
			
				26.11.2016, 11:20
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Вывод изображения на экран.
			 
			
		
		
		
		Здравствуйте, помогите пожалуйста разобраться.Не могу вывести изображение на экран из цикла. 
var pole=[
[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],] ;
for (var i=0;i<6;i++){
for (var j=0;j<10;j++){
if (pole[i][j]==0) {
pole[i][j]=new Image()
pole[i][j].src="trava.jpg"
pole[i][j].width="50"
pole[i][j].style.position="absolute"
pole[i][j].style.left=j*50+"px";
pole[i][j].style.top =i*70+"px";
pole[i][j].onload=function(){document.body.appendChild(pole[i][j])// не работает.
}}}}
pole[0][0].onload=function(){document.body.appendChild(pole[0][0])}// Работает
pole[5][9].onload=function(){document.body.appendChild(pole[5][9])}//работает
почему-то строка  
pole[i][j].onload=function(){document.body.appendChild(pole[i][j])
 в цикле не срабатывает. А та же строка вне цикла работает.  В моём примере рисуется только верхний левый и нижний правый сегмент игрового поля.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.11.2016, 16:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Rise
			 
		
	 | 
 
	| 
		DlinniyZmey, pole - массивы чисел, числа это не переменные, а ты с ними обращаешься как с переменными, это не будет работать и вне цикла, получается так 0=new Image() 0.src="trava.jpg" 0.onload= и тд.
	 | 
 
	
 
 Но ведь вне цикла работает...  
даже если вне цикла сделать так
 
var  i=2; var j=2;
pole[i][j].onload=function(){document.body.appendChild(pole[i][j])}
  то нарисуется поле 3.3...
 
Может быть подскажите , как сделать так , чтобы работало..? Просто я тут вообще в тупике. В идеале хочу сделать, чтобы прорисовка всех полей шла плавно через jQery , но пока даже так не могу вывести.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.11.2016, 18:27
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 выдаёт 60 [object HTMLImageElement] через запятую. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.11.2016, 18:30
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Разумеется это после цикла. Цикл отрабатывает, превращает нулики-числа в обьекты, но выводить их на экран не хочет. А вот сразу после цикла "в ручную" выводит каждый конкретный элемент. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.11.2016, 19:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Rise
			 
		
	 | 
 
	| 
		DlinniyZmey, а ну да че та меня переклинило)) в общем .onload должен идти по коду перед .src
	 | 
 
	
 
 так?
 
<html>
<script>
var pole=[
[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],] ;
for (var i=0;i<6;i++){
for (var j=0;j<10;j++){
if (pole[i][j]==0) {
pole[i][j]=new Image()
pole[i][j].onload=function(){document.body.appendChild(pole[i][j])}// не работает.
pole[i][j].src="trava.jpg"
pole[i][j].width="50"
pole[i][j].style.position="absolute"
pole[i][j].style.left=j*50+"px";
pole[i][j].style.top =i*70+"px";
}}}
pole[0][0].onload=function(){document.body.appendChild(pole[0][0])}//  Работает
pole[5][9].onload=function(){document.body.appendChild(pole[5][9])}//  работает
 
Так не работает вообще. Даже пара сегментов внизу кода (0,0 и 5.9) не рисуются.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось DlinniyZmey, 26.11.2016 в 19:14.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.11.2016, 19:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 нет, пара рисуется, просто нужно было фигурную скобку перенести вслед за строкой. Сейчас исправлю. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.11.2016, 07:06
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.08.2016 
					
					
					
						Сообщений: 14
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Rise
			 
		
	 | 
 
	
		DlinniyZmey, 
pole[i][j].onload=function(){document.body.appendChild(this)}
	 | 
 
	
 
 Спасибо!!!! Так и не понял, что это было, но теперь всё работает!!!!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				28.11.2016, 10:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.11.2015 
					
					
					
						Сообщений: 2,899
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		DlinniyZmey,
что-то у вас с onload больно мудрено... 
 
<script>
window.onload = function() {
var pole=[
[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],] ;
for (var i=0;i<6;i++){
for (var j=0;j<10;j++){
if (pole[i][j]==0) {
pole[i][j]=new Image()
pole[i][j].src="http://javascript.ru/cat/list/mobile.jpg"
pole[i][j].width="50"
pole[i][j].style.position="absolute"
pole[i][j].style.left=j*50+"px";
pole[i][j].style.top =i*70+"px";
document.body.appendChild(pole[i][j])//  работает.
}}}}
</script>
<body></body>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |