Когда тестовый код будет setinterval, он не будет щелкать, и когда я нажимаю <div onclick = "clear()">CLEAR</div>, это тоже не clearinterval.
Как сделать для установки интервала при нажатии <div onclick = "test_fn()">TEST</div>
и очистить интервал при нажатии <div onclick = "clear()">CLEAR</div>
<div onclick = "test_fn()">TEST</div>
<script>
var xxx = null;
xxx = window.setInterval(function test_fn(){
test_xxx();
}, 5000);
function test_xxx(){
alert("123456789");
}
</script>
<br>
<div onclick = "clear()">CLEAR</div>
<script>function clear(){
window.clearInterval(xxx);
}
</script>console счет test_fn is not defined
попробуйте другое имя для функции clear - похоже, браузеру это не нравится (любые другие имена работают)
поэтому тест на нажатие ничего не делает - но - интервал в любом случае запускается сразу
Я меняю имя функции на clear_xx, он работает хорошо для clearinterval, но все равно ошибка, когда setinterval
потому что вы пытаетесь вызвать функцию, которая не существует
мне нужно установить функцию test_fn на глобальную?
если вы хотите, чтобы атрибут onclick имел к нему доступ, тогда да



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Скорее поместите логику для setInterval() в обработчик onclick.
чем за его пределами.
Также измените имя clear() на любое другое. Поскольку вы вызываете document.clear () вместо своей функции.
Является ли «ясно» зарезервированным словом в Javascript?
=> из ES6 для передачи обратного вызова
функция setInterval().<div onclick = "test_fn()">TEST</div>
<br>
<div onclick = "clear_fn()">CLEAR</div>
<script>
var xxx = null;
function test_fn(){
alert('clicked');
xxx = window.setInterval(() => {
test_xxx();
}, 5000);
}
function clear_fn(){
alert('cleared')
window.clearInterval(xxx);
}
function test_xxx(){
alert("123456789");
}
</script>
посмотрите на ошибку в консоли ... обратите внимание, что
test_fnне является глобальной функцией, поэтому не виден дляonclick=