Событие onclick и контект вызова
Есть след. код:
<body>
<button onclick='timer()'>Десятичный таймер секунд</button>
<button onclick='timerBinary()'>Бинарный таймер секунд</button>
<p id='paragraph' style='font-size:200px' align='center'></p>
</body>
<script>
function timer(){
var timer = setInterval(function(){
var z = document.getElementById('paragraph');
var date = new Date();
z.innerHTML = date.getSeconds();}
, 1000);
}
function timerBinary(){
var timerBinary = setInterval(function(){
var z = document.getElementById('paragraph');
var date = new Date();
z.innerHTML = (date.getSeconds()).toString(2);}
, 1000);
}
</script>
При нажатии на некоторую кнопку, выполняется нужно событие и выводится таймер секунд в том или ином формате. Окей, но хочу добавить код, чтобы было так: если один из таймеров уже включен, а я нажал на новый, то старый просто переставал работать. Т.е. нужно выполнить clearInterval. Но как правильно указать контекст вызова этого метода? Читаю, но пока не понятно. |
Сохранять отдельно надо. Если таймер всегда должен быть в одном экземпляре, то проще всего сделать так:
function timer(){
clearInterval(timer._interval);
timer._interval = setInterval(function(){
//код
}, 1000);
}
или так
function timer(){
if(timer._interval) return; //просто ничего не делаем, раз уже запущен
timer._interval = setInterval(function(){
//код
}, 1000);
}
Т.к. функции в js - объекты, тут мы просто назначаем свойство с нужным значением. |
| Часовой пояс GMT +3, время: 19:19. |