Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Перезапуск одного таймера из нескольких (https://javascript.ru/forum/dom-window/47883-perezapusk-odnogo-tajjmera-iz-neskolkikh.html)

Drugpunker 16.06.2014 10:39

В итоге обращение по классу.
window.onload = function() {
    var span = document.querySelectorAll('.time');
    //var button = document.querySelectorAll('bet_button_active');
    for (var i = 0; i < span.length; i++)
    {
        var el = span[i];
        var button = document.getElementsByClassName('bet_button_active') ;//('.bet_button_active');
        button.onclick = (function(span)
        {
            return function()
            {
                clickTimerButton(span);
            };
        })(el);
        //el.parentNode.insertBefore(button, el.nextSibling);
        button.click();
    }
};


метод click() не работает:-?

рони 16.06.2014 10:50

Цитата:

Сообщение от Drugpunker
var button = document.getElementsByClassName('bet_button_active ') ;//('.bet_button_active');

Цитата:

Сообщение от Drugpunker
обращение по классу

а это не по классу ?

Цитата:

Сообщение от Drugpunker
var span = document.querySelectorAll('.time');

Цитата:

Сообщение от Drugpunker
var el = span[i];

http://learn.javascript.ru/searching...ntsbyclassname
Цитата:

Вызов elem.getElementsByClassName(className) возвращает коллекцию элементов с классом className.
может с учебника всётаки?

Drugpunker 16.06.2014 11:08

Прочитал уже...Не особо разбираясь в написанном, перебираю всё, что знаю(но не до конца)...

Каким же тогда образом повесить метод click на кнопку(прописанную статически), чтобы таймер обновился в конкретном
<span>
, находящемся в блоке с этой кнопкой?

Чем заменить
var button = document.createElement('input');
?

Может как-то обратиться через родительский элемент тэга
<span>
, являющийся, к тому же, родителем
<button>
?

Drugpunker 16.06.2014 12:39

Блиин, как быть подскажите кто-нибудь...

Drugpunker 16.06.2014 13:56

Цитата:

Сообщение от рони (Сообщение 316097)
Drugpunker,
:-?
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .time, input {
            background: rgba(102, 255, 51, 1);
            width: 80px;
            height: 30px;
            display: block;
            text-align: center;
        }
.div {
border: 1px #666 solid;
margin:2px;
}

    </style>
    <script>
        function countdownTime(elem) {

            var bet_time = new Date;
            bet_time = bet_time.getTime() + 20000;
            window.clearTimeout(elem.timer)

            function calculate(elem) {
                var now_time = new Date;
                now_time = now_time.getTime();
                var seconds = Math.ceil((bet_time - now_time) / 1000 * 1);

                if (seconds > 0) {
                    residue = seconds < 10 ? "0" + seconds : seconds;
                    elem.innerHTML = "00:00:" + residue;

                    elem.timer = setTimeout(function () {
                        calculate(elem);
                    }, 1000);
                } else {
                    elem.innerHTML = "Поехали";
                }
            }
            calculate(elem);
        }

        function clickTimerButton(elem) {
            return countdownTime(elem);
        }

function clickTimerButton(elem) {
            return countdownTime(elem);
        }
        /*window.onload = function () {
            var span = document.querySelectorAll('.time');
            for (var i = 0; i < span.length; i++) {
                var el = span[i];
                var button = document.createElement('input');
                button.onclick = (function (span) {
                    return function () {
                        clickTimerButton(span)
                    }
                })(el);
                button.type = 'button';
                button.value = 'Жмак!'
                el.parentNode.insertBefore(button, el.nextSibling);
                button.click()
            }
        }*/

    </script>
</head>

<body>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>  

</body>

</html>

рони, как в такой ситуации воткнуть твой код?

рони 16.06.2014 14:21

Drugpunker,
:-?
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .time, input {
            background: rgba(102, 255, 51, 1);
            width: 80px;
            height: 30px;
            display: block;
            text-align: center;
        }
.div {
border: 1px #666 solid;
margin:2px;
}

    </style>
    <script>
        function countdownTime(elem) {

            var bet_time = new Date;
            bet_time = bet_time.getTime() + 20000;
            window.clearTimeout(elem.timer)

            function calculate(elem) {
                var now_time = new Date;
                now_time = now_time.getTime();
                var seconds = Math.ceil((bet_time - now_time) / 1000 * 1);

                if (seconds > 0) {
                    residue = seconds < 10 ? "0" + seconds : seconds;
                    elem.innerHTML = "00:00:" + residue;

                    elem.timer = setTimeout(function () {
                        calculate(elem);
                    }, 1000);
                } else {
                    elem.innerHTML = "Поехали";
                }
            }
            calculate(elem);
        }

        function clickTimerButton(elem) {
            return countdownTime(elem);
        }

function clickTimerButton(elem) {
            return countdownTime(elem);
        }
        window.onload = function () {
            var divs = document.querySelectorAll('.div');
            for (var i = 0; i < divs.length; i++) {
                var el = divs[i].querySelector('.time');
                var button = divs[i].querySelector('button');
                button.onclick = (function (span) {
                    return function () {
                        clickTimerButton(span)
                    }
                })(el);
                button.click()
            }
        }

    </script>
</head>

<body>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>

<div class='div'>
<div><span class='time'></span></div>
<div>Кто нажал на кнопку</div>
<div><button>Жмак!</button></div>
</div>

</body>

</html>

Drugpunker 16.06.2014 14:31

УРРРРРРРРРРРААААААААААААА ААААААААААААААААААА!!!!!

Свершилось.
рони спасибо.

Изначально криво вопрос поставил, видимо.

С меня +, как только возможно будет.


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