Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер для нескольких id (https://javascript.ru/forum/misc/67493-tajjmer-dlya-neskolkikh-id.html)

nekada 20.02.2017 19:30

Таймер для нескольких id
 
Здрасте, подскажите по таймеру...

<body onLoad="refresh();">

{literal}
<script language="JavaScript" type="text/javascript">
<!--
//секунды
var sec=00;
//минуты
var min=02;

function refresh()
{
  sec--;
  if(sec==-01){sec=59; min=min-1;}
  else{min=min;}
  if(sec<=9){sec="0" + sec;}
  time=(min<=9 ? "0" + min : min) + ":" + sec;
  if(document.getElementById){timer_{/literal}{$iAnswerId}{literal}.innerHTML=time;}
  inter=setTimeout("refresh()", 1000);
}
//-->
</script>
{/literal}


<span id="timer_{$iAnswerId}">время...</span>
</body>


Если на странице больше 1 span, выполняется только последний, как сделать, что бы работало для всех ?

рони 20.02.2017 20:14

nekada,
http://javascript.ru/forum/dom-windo...tml#post316097

nekada 20.02.2017 22:16

Спасибо, но мне нужно без кнопок, при загрузке страницы или изменение dom...

рони 20.02.2017 22:19

nekada,
поставьте класс и циклом по классу в 16 строке

nekada 20.02.2017 22:31

немного не понял...
Вы имеете ввиду : document.querySelectorAll ?

рони 20.02.2017 22:33

nekada,
<!DOCTYPE html>

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

  <script>
window.addEventListener('DOMContentLoaded', function() {
  //секунды
var sec=7;
//минуты
var min=0;

function refresh()
{
  sec--;
  if(sec==-01){sec=59; min=min-1;}
  if(sec<=9){sec="0" + sec;}
  time=(min<=9 ? "0" + min : min) + ":" + sec;
  [].forEach.call( document.querySelectorAll('.timer'), function(el) {
         el.innerHTML=time
  });

  (+sec||+min) && setTimeout(refresh, 1000);
}
refresh()
    });
  </script>
</head>

<body>
<span class="timer"></span>
<span class="timer"></span>
</body>
</html>

nekada 20.02.2017 22:48

рони,
Рони, вы знаток :) Спасибо, но скажите почему при добавление ного элемента они теперь все перезагружаются ?

nekada 20.02.2017 23:01

Сделал классы уникальные перестали перезагружаться, но есть одно, но при добавление нового элемента, добавленный не работает, можно как-то привязать после добавления перезагрузку скрипта?

Добавление элемента происходит через ajax, без перезагрузки страницы...

рони 20.02.2017 23:23

nekada,
не понимаю

nekada 21.02.2017 00:49

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


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