Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2015, 21:07
Новичок на форуме
Отправить личное сообщение для smollalex Посмотреть профиль Найти все сообщения от smollalex
 
Регистрация: 30.08.2014
Сообщений: 2

помогите новичку с функцией setInterval
В общем есть такой код:
<span class="target" data-start="0" data-end="8000000000" data-interval="1000" data-timer="1010"></span>

$(document).ready(function(){

		$('.target').each(function(){
			var timer = $(this).attr('data-timer');
			setInterval(Calc(this), timer);
		});
		

		function Calc(input){
			var Target = $(input);
			var startValue = Number(Target.attr('data-start'));
			var endValue = Number(Target.attr('data-end'));
			var interval = Number(Target.attr('data-interval'));
			var progress = startValue;
			if (startValue < endValue) {
				var progress = startValue + interval;
				Target.attr('data-start', progress);
				Target.html(progress);
			}
		}
	});


Подскажите плиз, почему функция вызывается только один раз? Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2015, 21:24
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

потому что у тебя в setInterval первым аргументом попадает undefined. setInterval принимает в качестве первого аргумента функцию, а не ее вызов. можешь попробовать переписать так
function Calc(input){return function(){твой код}}

возможнол есть другие ошибки. Но причина -- в этом
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2015, 21:27
Новичок на форуме
Отправить личное сообщение для smollalex Посмотреть профиль Найти все сообщения от smollalex
 
Регистрация: 30.08.2014
Сообщений: 2

Спасибо, работает )
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2015, 21:30
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

setInterval(Calc.bind(0, this), timer);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2015, 21:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

таймеры через data
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
    $(document).ready(function(){

		$('.target').each(function(){
		    var Target = $(this);
			var duration = Target.data('duration');
            var startValue = Target.data('start');
            Target.html(startValue);
            var f = Calc.bind(this);
            Target.timer = setInterval(f, duration);
		});


		function Calc(){
			var Target = $(this);
			var startValue = Target.data('start');
			var endValue = Target.data('end');
			var step = Target.data('step');
            startValue += step;
			if (startValue < endValue) {
				Target.data('start', startValue);
			}
            else {
              window.clearInterval(Target.timer);
              startValue = endValue
            };
            Target.html(startValue);
		}
	});

  </script>
</head>

<body>
<span class="target" data-start="0" data-end="8000" data-step="1000" data-duration="1010"></span>
<span class="target" data-start="0" data-end="12" data-step="1" data-duration="1010"></span>
</body>

</html>

Последний раз редактировалось рони, 05.04.2015 в 21:35.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с функцией error ajax Evhen AJAX и COMET 2 13.12.2013 11:17
помогите новичку с обратной связью от сервера bigjoy AJAX и COMET 2 14.10.2013 08:55
Помогите плис новичку в ajax urel AJAX и COMET 6 12.01.2013 21:36
Помогите новичку! Анатолий Саратовцев Events/DOM/Window 7 04.08.2012 17:46
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15