Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2018, 13:12
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Подскажите как грамотно прекратить и возобновить setInterval?
Добрый день. Допустим есть функция которая запускается после загрузки страницы:
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<button onclick="test ()">Вызов функции</button>
<div id="hello"></div>
<script type="text/javascript">
$(document).ready(function(){
    test ();
});

function test (){
      var data = 'привет';
      consol(data);
}

function consol(data){
      $("#hello").append(data+' ');
      setTimeout(function() { 
          consol(data);
     }, 2000); 
}

</script>

Внутри функции работает setTomeout, и если вызвать первую функцию как то еще, она дублируется.
Сам вопрос, как вызвав эту функцию например с кнопки, чтобы обновление старой функции прекратилось? Чтобы обновлялась только последняя вызванная функция.

Последний раз редактировалось Artur_Hopf, 07.09.2018 в 13:17.
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2018, 13:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Artur_Hopf
как грамотно прекратить и возобновить setInterval?
У тебя в примере нет setInterval()...
Сообщение от Artur_Hopf
чтобы обновление старой функции прекратилось?
Нужно чтобы функция "знала", что не нужно опять выполнять setTimeout().
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2018, 13:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Artur_Hopf
Внутри функции работает setTomeout, и если вызвать первую функцию как то еще, она дублируется.
Сам вопрос, как вызвав эту функцию например с кнопки, чтобы обновление старой функции прекратилось?
Если я правильно понял "вопрос", то как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	test('One');
});
function test (data){
	consol(data);
}
function consol(data){
	if (consol.id!==undefined) {
		clearTimeout(consol.id);
	};
	$("#hello").text(data+' '+new Date());
	consol.id=setTimeout(function() { 
		consol(data);
	}, 2000); 
}
</script>
</head>
<body>
<button onclick="test('Two')">Вызов функции</button>
<div id="hello"></div>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2018, 15:00
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

ksa,
Заработало =)) спасибо, это чудо прям какое то=))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как изменить скрипт ibutterfly777 Общие вопросы Javascript 0 10.10.2014 12:02
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
подскажите, как сделать индикатор «до начала загрузки страницы»? SergAG Элементы интерфейса 7 31.05.2011 19:53
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00