Показать сообщение отдельно
  #6 (permalink)  
Старый 24.11.2013, 11:32
Аспирант
Отправить личное сообщение для Altai Посмотреть профиль Найти все сообщения от Altai
 
Регистрация: 24.11.2013
Сообщений: 37

Сообщение от Ruslan_xDD Посмотреть сообщение
Если я правильно понял, то Вам нужно это:

var i = 0, timeout;

function func1(){
	
	x = Number(document.form1.inp1.value);
	
	
		if(document.bgColor=="yellow") document.bgColor="white";
		else document.bgColor="yellow";
		timeout = setTimeout(func1, 2000);
		i++;
	
	if (Number(i)==Number(x)) clearTimeout(timeout);
}


Упрощённый вариант:

var i = 0, timeout;

function func1() {
	document.bgColor = document.bgColor == 'yellow' ? '#000' : 'yellow';
	timeout = setTimeout(func1, 2000);
	if (++i == document.form1.inp1.value) clearTimeout(timeout);
}


Правильный вариант:
function func1() {
	var i = 0, int, m, n = document.form1.inp1;
	int = setInterval(function() {
		document.body.bgColor = (m ^= 1) ? 'yellow' : '#000';
		if(++i == n.value) clearInterval(int);
	}, 2000);
}
Спасибо большое! Всё работает. Мне непонятно было, почему break не завершает функцию. Теперь понял что break может только циклы завершать. А в место break для завершения функции надо использовать return. Спасибо всем за помощь!
Ответить с цитированием