为什么我无法控制setinterval和clearinterval javascript?

时间:2018-08-25 07:21:43

标签: javascript html css

测试代码时,setinterval不会被点击,而我点击<div onclick="clear()">CLEAR</div>时也不会clearinterval

单击<div onclick="test_fn()">TEST</div>时如何设置setinterval 点击<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>

1 个答案:

答案 0 :(得分:0)

  • setInterval()的逻辑放在onclick处理程序中 比外面的要多。

  • 还要将clear()更改为任何其他名称。当您调用document.clear()而不是您的函数时。 Is "clear" a reserved word in 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>