Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамический таймер на ООП (https://javascript.ru/forum/misc/70776-dinamicheskijj-tajjmer-na-oop.html)

Vardges 02.10.2017 11:53

Динамический таймер на ООП
 
Добрый день.Нужно создать таймер на ооп. Цель если таймер t завершился, начать отсчет таймера t2.
$(document).ready(function(){
	function Timer(x){
		this.time=x;
		this.start=function(){
			var varkyan=this.time-1;
			var mvarkyan=60;
			interval=setInterval(function(){
				$("body").each(function(){
					mvarkyan=mvarkyan-1;
					if(mvarkyan==0){
						varkyan-=1;
						mvarkyan=60;
					}
					if(varkyan==0 && mvarkyan==1){
						$(this).html(0+":"+0);
						clearInterval(interval);
					}
					$(this).html(varkyan+":"+mvarkyan);
				})
			},100)
		}
	}
	var t=new Timer(1);
	var t2=new Timer(1);
	t.start(t2);
})

Проблема в том что таймер остонавливает на t. Думаю все из-за
if(varkyan==0 && mvarkyan==1){
						$(this).html(0+":"+0);
						clearInterval(interval);
					}

Не могу понять как изменить эту часть. На ООП перешел день и даже не знаю что гуглить чтоб получить ответ.Так что тапками не кидаться)

Vardges 02.10.2017 13:48

Цитата:

Сообщение от Rise (Сообщение 466242)
Vardges,
непонятны имена некоторых переменных

может быть, но это никакой роли не играет)

Vardges 02.10.2017 13:58

Rise,
mvarkyan=милисекунды
varkyan=секунды

Alexandroppolus 02.10.2017 14:51

Цитата:

Сообщение от Vardges
t.start(t2);

метод start объявлен без параметров. Сдается мне, где-то тут есть косяк.

Vardges 02.10.2017 14:52

Rise,
Спасибо за ссылку,объязательно прочту. Но сейчас мне нужно закончить код, буду благодарен в двойне если поможете

Vardges 02.10.2017 14:58

Alexandroppolus,
здесь start не метод а функция.Посмотрите на 4ой линии

Alexandroppolus 02.10.2017 15:04

Цитата:

Сообщение от Vardges
здесь start не метод а функция.

функция так функция. Но всё равно без параметров.

рони 02.10.2017 15:09

Timer in jquery
 
:write:
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $.fn.Timer = function Timer(obj) {
        var def = {
            from: 5000,
            duration: 5000,
            to: 0,
            callback: null
        };
        var opt = $.extend({}, def, obj);
        return this.each(function(indx, el) {
            $(el).queue(function() {
                el.n = opt.from;
                $(el).dequeue()
            });
            $(el).animate({
                n: opt.to
            }, {
                easing: "linear",
                duration: opt.duration,
                step: function(now, fx) {
                    $(fx.elem).html(now | 0)
                },
                complete: opt.callback
            })
        })
    };
    $("#slider").Timer({
        callback: function() {
            $(this).css({
                color: "red"
            })
        }
    }).Timer({
        duration: 2E4,
        callback: function() {
            $(this).text("End")
        }
    })
});
  </script>
</head>

<body>
<div id="slider"></div>

</body>
</html>


Часовой пояс GMT +3, время: 08:23.