Javascript 简单setInterval函数中的SyntaxError
我想在2秒钟的循环中开始更改鼠标上方div的背景色 因此,html代码:Javascript 简单setInterval函数中的SyntaxError,javascript,setinterval,Javascript,Setinterval,我想在2秒钟的循环中开始更改鼠标上方div的背景色 因此,html代码: <div onmousemove="start_loop(this)"></div> 但我有一个错误: SyntaxError: missing ] after element list start_loop([object HTMLDivElement]) theDiv不是一个字符串,它是一个DOM元素,所以使用字符串连接不会有任何用处。尝试: var ms; function start
<div onmousemove="start_loop(this)"></div>
但我有一个错误:
SyntaxError: missing ] after element list
start_loop([object HTMLDivElement])
theDiv
不是一个字符串,它是一个DOM元素,所以使用字符串连接不会有任何用处。尝试:
var ms;
function start_loop(theDiv) {
if (!ms) {
ms = setInterval(function() {
changeBg(theDiv);
}, 2000);
}
}
你可以在setInterval中使用匿名函数,就是这样
functionstart_loop(param){
//some code
}
ms=setInterval( function() { loop(param) }, 2000);
这就是为什么要将函数引用或匿名函数传递给
setInterval()
,而不是传递包含JavaScript的字符串。谢谢Barmar,现在可以了,但我遇到了另一个问题,每次鼠标移动到div上时,我都有多个间隔在执行相同的任务,因此如何在创建之前检查间隔是否不存在?看起来解决方案非常明显,但是我更新了答案以显示它。我在询问之前尝试过,但我得到了ReferenceError:ms未定义尝试使用var ms=null
初始化它。
functionstart_loop(param){
//some code
}
ms=setInterval( function() { loop(param) }, 2000);