Как вы пометили этот jQuery ...
Сначала поместите идентификаторы на свои кнопки ввода и удалите встроенные обработчики:
<input type="number" id="input" />
<input type="button" id="stop" value="stop"/>
<input type="button" id="start" value="start"/>
Затем сохраните все свое состояние и функциизаключен в замыкание:
EDIT обновлен для более чистой реализации, что также учитывает озабоченность @ Esailija по поводу использования setInterval()
.
$(function() {
var timer = null;
var input = document.getElementById('input');
function tick() {
++input.value;
start(); // restart the timer
};
function start() { // use a one-off timer
timer = setTimeout(tick, 1000);
};
function stop() {
clearTimeout(timer);
};
$('#start').bind("click", start); // use .on in jQuery 1.7+
$('#stop').bind("click", stop);
start(); // if you want it to auto-start
});
ваши переменные попадают в глобальную область видимости и не могут быть изменены извне.
(Обновлено) рабочая демонстрация на http://jsfiddle.net/alnitak/Q6RhG/