Показать сообщение отдельно
  #10 (permalink)  
Старый 23.08.2017, 20:40
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Narko Посмотреть сообщение
Даже если брать твой пример, то нажми 2 раза на кнопку, бред начинается. Функция выполняется 2 раза.
Как отслеживать, если функция уже нажата, то не выполнять новую функцию.
путей решения есть несколько. можно сделать нормальную кнопу и дизейблить ее.
или навешивать обработчик через addEventListener чтобы потом его можно было удалить

<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<span id="id1">Кнопка</span>
	<span id="id2">Кнопка</span>
	<script>

		function message(num, id){ 
			var int = setInterval(function(){ 
				num--; 
				id.innerHTML = num; 
				if (num == 0) clearInterval(int); 
			},1000); 
		}

		document.querySelector('#id1').addEventListener('click', function(e) {
			message(1000, e.target);
			this.removeEventListener(e.type, arguments.callee);
		}, false);
		document.querySelector('#id2').addEventListener('click', function(e) {
			message(1000, e.target);
			this.removeEventListener(e.type, arguments.callee);
		}, false);

	</script>
</body>
</html>
Ответить с цитированием