Во-первых, убедитесь, что прослушиватель событий правильно размещен в элементе startButton
, добавив функцию в метод addEventLister
, например:
startButton.addEventListener("click", function() {
//code goes here
});
Затем инициализируйте переменную timeinterval
в глобальная область действия кода, чтобы к нему можно было получить доступ из всех функций, и добавьте const
, в котором вы можете сохранить исходный текст startButton
:
(function () {
"use strict";
const START_BUTTON_INITIAL_TEXT = "Start"; // initial constant text of the start button
var minutesLabel = document.getElementById('t1-min'),
secondsLabel = document.getElementById('t1-sec'),
resetButton = document.getElementById('t1-reset'),
startButton = document.getElementById('t1-play'),
timer = null,
timeinterval; // declared in the global scope
Затем добавьте id
, равный t1-stop
, для элемента значка stopButton
, чтобы обеспечить точный доступ к нему из файла Javascript из DOM:
startButton.innerHTML = ('<i id="t1-stop" class="far fa-stop-circle fa-2x float-right">');
и, наконец, добавьте оператор if вaddEventListener
функция startButton
для проверки наличия кнопки останова в DOM при нажатии startButton
:
startButton.addEventListener("click", function() {
if (document.getElementById("t1-stop") != null) {
clearInterval(timeinterval);
var stopButton = document.getElementById("t1-stop");
startButton.removeChild(stopButton);
startButton.innerHTML = START_BUTTON_INITIAL_TEXT;
}
Приведенный выше код останавливает timeinterval
и удаляет stopButton
изDOM затем заменяет innerHTML
из startButton
исходным текстом, установленным в качестве константы в объявлении верхней переменной.
В целом, функция прослушивателя событий для startButton
должна выглядетькак то так:
startButton.addEventListener("click", function() {
if (document.getElementById("t1-stop") != null) {
clearInterval(timeinterval);
var stopButton = document.getElementById("t1-stop");
startButton.removeChild(stopButton);
startButton.innerHTML = START_BUTTON_INITIAL_TEXT;
return;
}
var timeInMinutes = minutesLabel.innerHTML,
currentTime = Date.parse(new Date()),
deadline = new Date(currentTime + timeInMinutes * 60 * 1000);
initializeClock(deadline);
startButton.innerHTML = ('<i id="t1-stop" class="far fa-stop-circle fa-2x float-right">');
});