Есть ли способ запустить несколько скриптов на html-сайте

#javascript #html #jquery #css

#javascript #HTML #jquery #css

Вопрос:

Я хочу использовать его для нескольких элементов HTML, но мне не повезло, например, иметь 2-й элемент, который отсчитывает время до другого времени

Потому что я пытался изменить все имена переменных во 2-м скрипте (копия скрипта с измененным идентификатором элемента HTML, измененными именами переменных и функций), и он не давал никаких результатов.

Это оно

 (function() {
  var start = new Date;
  start.setHours(15, 10, 0); // 11pm

  function pad(num) {
    return ("0"   parseInt(num)).substr(-2);
  }

  function tick() {
    var now = new Date;
    if (now > start) { // too late, go to tomorrow
      start.setDate(start.getDate()   1);
    }
    var remain = ((start - now) / 1000);
    var hh = pad((remain / 60 / 60) % 60);
    var mm = pad((remain / 60) % 60);
    var ss = pad(remain % 60);
    document.getElementById('time').innerHTML =
      hh   ":"   mm   ":"   ss;
    setTimeout(tick, 1000);
  }

  document.addEventListener('DOMContentLoaded', tick);
})();
</script>
 

Ответ №1:

Сделайте это функцией, найдите элементы, затем передайте элементы таймеру обратного отсчета, который затем изменяет элементы innerHTML и т.д.

Если вам нужно разное время, используйте data атрибуты для установки параметров для элемента, который вы можете получить elm.dataset.somename , см. Документы

 function countdown(elm) {
  var start = new Date;
  start.setHours(elm.dataset.h || 0, elm.dataset.m || 0, elm.dataset.s || 0); // from dataset

  function pad(num) {
    return ("0"   parseInt(num)).substr(-2);
  }

  function tick() {
    var now = new Date;
    if (now > start) { // too late, go to tomorrow
      start.setDate(start.getDate()   1);
    }
    var remain = ((start - now) / 1000);
    var hh = pad((remain / 60 / 60) % 60);
    var mm = pad((remain / 60) % 60);
    var ss = pad(remain % 60);
    elm.innerHTML =
      hh   ":"   mm   ":"   ss;
    setTimeout(tick, 1000);
  }
  tick();
}

document.querySelectorAll('.timer').forEach(countdown) 
 <div class="timer" data-h="1" data-m="10" data-s="0"></div>
<div class="timer" data-h="3" data-m="15" data-s="5"></div>
<div class="timer" data-h="6" data-m="20" data-s="10"></div>
<div class="timer" data-h="12" data-m="30" data-s="59"></div> 

Комментарии:

1. Большое вам спасибо! Я смог закончить свою школьную работу, если вы хотите ее проверить whstime.github.io/whs