Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не обновляются часы (https://javascript.ru/forum/misc/63764-ne-obnovlyayutsya-chasy.html)

Sokoljr 27.06.2016 19:35

Не обновляются часы
 
проблема в том, что при нажатии кнопки start, время включается , но не обновляется, если убрать обработчик с кнопкой то время работает норм. Нужно чтобы при нажатии кнопки Start время запускалось, а при нажатии кнопки reset время выключалось, либо сбрасывалось на 00:00:00.

html

<body>
<div id="watch"></div>
<button>Start</button> 
<button>Reset</button>

<script>
var buttons = document.getElementsByTagName ("button");

buttons[0].addEventListener("click", time);
function time(e) {
var d = new Date();
document.getElementById("watch").innerHTML = d.toLocaleTimeString();
};
setInterval("time(e)", 1000);
</script>
</body>

рони 27.06.2016 19:53

Sokoljr,
придумайте переменную для setInterval по клику на buttons[0] запускате интервал по клику на buttons[1] обнуляйте

Sokoljr 27.06.2016 19:59

не совсем понял, я же setInterval запускаю функцию, на которую уже поставлен обработчик

рони 27.06.2016 20:01

Sokoljr,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
<div id="watch"></div>
<button>Start</button>
<button>Reset</button>

<script>
var buttons = document.getElementsByTagName ("button"), timer;

buttons[0].addEventListener("click", goTime);
buttons[1].addEventListener("click", endTime);
 function goTime()
 {
   time();
   timer = setInterval(time, 1000);
 }
 function endTime()
 {
    window.clearInterval(timer);
    //document.getElementById("watch").innerHTML =  "00:00:00"
 }

function time() {
var d = new Date();
document.getElementById("watch").innerHTML = d.toLocaleTimeString();
}

</script>
</body>

</html>


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