Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблемы с функцией (https://javascript.ru/forum/events/43828-problemy-s-funkciejj.html)

Зыкин Илья 23.12.2013 00:44

Проблемы с функцией
 
Возможно я и не в ту ветку пишу, но хз уже.
Вообщем взялся помочь человеку, самому интересно стало.

Собственно проблема в том, что первый раз по нажатии на кнопку условие срабатывает, а второй раз при нажатии на кнопку нет.

То ли глаз так замылился, то ли недопустимое что то пишу.
Вот само творение(приложу весь код):

<html>
    <head>
        <title>Приветствие 2014</title>
        <meta charset="UTF-8">
        <style type="text/css" rel="StyleSheet">
            .gblock{width:350px; font-size:14px;border:solid 1px #000000;font-family: verdana, sans;}
            .gtitle{background:#284352; color:#ffffff;}
            #tb{width:348px;padding:2px;}
            .texttyt{background:red;width:342px; font-size:14px; padding:2px; color:#ffffff;}
						
						.block {display: none;}
        </style>
        <script>
					function changeContent() {
						var allBlock = document.getElementById('tb').getElementsByClassName('block');
						var loadImg = document.getElementById('load');
						for (i = 0; i < allBlock.length-1; i++) {
						
							if (allBlock[i].style.display == 'block' && i < (allBlock.length-1)) {
								allBlock[i].style.display = 'none';
								loadImg.style.display = 'block';
								setTimeout(function() {
									loadImg.style.display = 'none';
									allBlock[i+1].style.display = 'block';
								}, 2000);
								return;
								
							} else if (allBlock[length-1].style.display == 'block') {
								allBlock[length-1].style.display = 'none';
								loadImg.style.display = 'block';
								setTimeout(function() {
									loadImg.style.display = 'none';
									allBlock[0].style.display = 'block';
								}, 2000);
								return;
							}
						}
					}
        </script>
    </head>
    <body>
			<div class="gblock">
				<div class="gtitle">
					Блок с приветсвием
				</div>
				<div>
					 <center><input type="button" id="button" onclick="changeContent()" value="Нажми"></center>
				</div>
				<div id="tb">
					<center><img id="load" style="display: none;" src="http://javascript.ru/cat/list/event.gif"></center><br/>
					
					<div style="display: block;" class="block">
					1
					</div>
					<div class="block">
					2
					</div>
					<div class="block">
					3
					</div>
					
				</div>
			</div>  
    </body>
</html>

Критика приветствуется)

BallsShaped 23.12.2013 01:02

В 28 строке
allBlock[length-1]
вместо, видимо
allBlock[allBlock.length-1]

Кстати, народ, window.length - это что, вообще, такое?

Зыкин Илья 23.12.2013 02:18

Ну точно, глаз замылился))

Спасибо большое)

Vlasenko Fedor 23.12.2013 04:36

http://learn.javascript.ru/play/c9C0k


Часовой пояс GMT +3, время: 21:39.