@mvr1976
Учу html, css, js

Почему не работает callback функция?

Добрый день!
Помогите пожалуйста: надо запустить функцию 2 сразу после завершения функции 1. Пытаюсь сделать это с помощью коллбэка, но пока безуспешно. Пробовал совсем напролом: function run(){if(!func1()){func2();}}, но при запуске в браузере страница начинала реально трястись и дергаться)
Вот код целиком, это 2 таймера, которые должны запускаться последовательно, в соответствии с заданными значениями.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Pomodoro</title>
<meta name="" content="" charset="utf-8">
<link href="pomodoro.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p>Pomodoro</p>
<div id="Mytimer"><p><a id="timer" href="javascript:tiktak(tiktak1)">count!</a></p></div>
<div id="first">
<p><input type="text" id="volume" value="5" /></p>
<input type="button" value="+" onClick="inc()">
<input type="button" value="-" onClick="dec()">
</div>

<div id = "sec">
<p><input type="text" id="volume1" value="2" /></p>
<input type="button" value="+" onClick="inc1()">
<input type="button" value="-" onClick="dec1()">
	
</div>
<script>
	var ch = document.getElementById("volume").value*60;
	//console.log(ch);	 
	 
		function inc(){ch+=60;document.getElementById("volume").value = Math.floor(ch/60);}
		function dec(){ch-=60;document.getElementById("volume").value = Math.floor(ch/60);} 
		
		function inc1(){ch+=60;document.getElementById("volume1").value = Math.floor(ch/60);}
		function dec1(){ch-=60;document.getElementById("volume1").value = Math.floor(ch/60);} 
	
			
        function tiktak(tiktak1){                 
          if(ch >= 60){
          minute = Math.floor(ch/60);}
          var second = ch - minute*60;                   
          if(ch<60){minute = 0;}
          if(minute<=9){minute = "0" + minute;}
          if(ch<=9){second = "0" + second;}
          if(document.getElementById){timer.innerHTML = minute + ":" + second;}
          //if(ch==00){return false;}          
          if(ch==00){tiktak1.call();}
          ch--;          
          setTimeout("tiktak()", 1000);          
        }

     var ch1 = document.getElementById("volume1").value*60;   
          var tiktak1 = function(){                 
          if(ch1 >= 60){
          minute = Math.floor(ch1/60);}
          var second = ch1 - minute*60;                   
          if(ch1<60){minute = 0;}
          if(minute<=9){minute = "0" + minute;}
          if(ch1<=9){second = "0" + second;}
          if(document.getElementById){timer.innerHTML = minute + ":" + second;}
          if(ch1==00){return false;}
          ch1--;
          setTimeout("tiktak1()", 1000);
        }
</script>
</body>
</html>
  • Вопрос задан
  • 639 просмотров
Пригласить эксперта
Ответы на вопрос 2
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Наймите кого-нибудь, не ваше это.
Ответ написан
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
setTimeout("tiktak()", 1000);
ты улавливаешь разницу в вызове функции с аргументами и без?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы