JQuery удобно хранит слушатель событий, так что если вы определяете их в отдельных функциях, вы можете легко удалить их:
function stopChrono() {
clearInterval(chronometer);
$(this).attr('class', 'w3-btn w3-green')
$('#start').off('click', stopChrono)
$('#start').on('click', startChrono)
}
function startChrono(e) {
$(this).attr('value', function (_, text) {
$(this).attr("class", "w3-btn w3-red")
return text === 'Stop!' ? 'Start!' : 'Stop!';
})
$('#start').off('click', startChrono)
$('#start').on('click', stopChrono)
}
$('#start').on('click', startCrono);
После хронографа запускается, я удалил «нажмите кнопку» слушатель событий, потому что на следующий клик не следует начинать хронограф. Я также добавил прослушиватель событий stopChrono 'click', потому что он должен остановить хронограф.
Обратное верно для stopChrono()
: прослушиватель 'click' отключен от stopChrono и снова подключен к startChrono.
Теперь вы должны быть в состоянии идти туда и обратно.
5 ошибок сообщили в jsbin. Строка 68: Отсутствует точка с запятой. Линия 70: Отсутствие точки с запятой. Линия 72: Отсутствие точки с запятой. Линия 74: Отсутствие точки с запятой. Строка 75: Отсутствует точка с запятой. – PaulH
Если вы исправите эти ошибки, ничего не произойдет, хром не загрузит onclick. @PaulH –