Member 13961616 Ответов: 1

Простой будильник на javascript


Привет!

Я пытаюсь создать простое приложение для будильника на javascript.
Моя идея состоит в том, чтобы сравнить значение из функции getHours со значением из опции select, выбранной пользователем. (до сих пор я писал код только в течение нескольких часов Без минут).

Поскольку я новичок в программировании, я понятия не имею, где может быть ошибка.
Я хотел бы попросить вас о любых идеях/помощи, что я должен рассмотреть в этом коде.

Что я уже пробовал:

function loop () {
 
  var frag = document.createDocumentFragment();
  for(i = 1; i < 25; i++) {
    var op = document.createElement("option"); 
    op.textContent = i;                         
    frag.appendChild(op);                       
  };

  document.getElementById("hours").appendChild(frag);
};

loop();

function loop2 () {

  var fragm = document.createDocumentFragment();

  for(i = 0; i < 60; i++) {
    var op2 = document.createElement("option");  
    op2.textContent = i;                         
    fragm.appendChild(op2);                       
  };
  document.getElementById("min").appendChild(fragm);
};

loop2();


//console.log((new Date()).getHours());
 //function aaa (s) {
//var s = document.getElementById("hours");
// console.log('Value przechowuje wartość: '+s.value);  
 //}
//aaa();



function play () {
  var s = document.getElementById("hours");
  var currentTime = new Date().getHours();
  if (s.value == currentTime.value) {
    alert('yey');
    console.log(play);
  }
}
play();



<head></head>
<body>
  <div id="alarm">
    <p>Choose time of alarm ring</p>
    <select id="hours">
    </select>
    <select id="min">
    </select>
  </div>
<audio id="alert" src="assets/alert.mp3" preload="auto"></audio>
</body>

Richard MacCutchan

В чем же проблема?

Member 13961616

проблема в том, что это не работает, и я понятия не имею, почему

Richard MacCutchan

Что не работает? Если вы не объясните точно, в чем заключается проблема и где она возникает, нам будет трудно вам помочь. Поговорка - это не работает." это хуже, чем бесполезно, потому что оно ничего нам не говорит.

1 Ответов

Рейтинг:
1

Richard Deeming

Когда вы создаете часы и минуты в вашем <select> списки, будет выбран первый элемент.

Затем вы сразу же проверяете, должен ли звучать сигнал тревоги. Это произойдет только в том случае, если вы запустите свой проект в час ночи. Как только эта проверка завершена, вы никогда не проверяете снова.

Вам нужно запустить свой тест в цикле, используя либо setInterval[^] или setTimeout[^].

// Using setInterval:
function play() { ... }
setInterval(play, 1000); // Check the time every second

// OR - using setTimeout:
function play() {
    ...
    
    setTimeout(play, 1000); // Check again in one second
}

play();

Вероятно, вы также захотите воспроизвести MP3-файл, когда будет достигнуто время будильника:
document.getElementById("alert").play();

HTMLMediaElement.play() - веб-API | MDN[^]