以下是我的代码。现在,当鼠标离开时,我想等待 2000 毫秒以恢复我的幻灯片放映。但是一旦鼠标离开,图像就会改变。有人可以帮忙吗??
<img src="images/achiever.png" name="slide" alt="badge"
width="130" height="130" onmouseover="pause()"
onmouseout="javascript:setTimeout(resume(), 2000)" />
以下是我的代码。现在,当鼠标离开时,我想等待 2000 毫秒以恢复我的幻灯片放映。但是一旦鼠标离开,图像就会改变。有人可以帮忙吗??
<img src="images/achiever.png" name="slide" alt="badge"
width="130" height="130" onmouseover="pause()"
onmouseout="javascript:setTimeout(resume(), 2000)" />
您正在调用 resume
并将其返回值传递给setTimeout
,而不是传递resume
给它。setTimeout
应该是这样的:
setTimeout(resume, 2000)
就像foo(bar())
执行bar并将其返回值传递给一样foo
,setTimeout(resume(), 2000)
执行 resume
并将其返回值传递给setTimeout
.
另外,请注意您不要将javascript:
伪协议与任何onXYZ
属性一起使用,仅在需要 URL 的地方(例如href
在锚点上)使用。所以你的onmouseout
属性应该是这样的:
onmouseout="setTimeout(resume, 2000)"
属性中的代码onXYZ
始终是代码,而不是 URL。javascript:
那里实际上最终成为一个毫无意义的标签。
setTimeOut 的参数应该是一个函数,而将函数作为参数传递的正确方法是使用不带括号的函数名。如果添加括号,则实际上是在执行函数并将结果传递给 setTimeOut。因此,应该是setTimeOut(resume,2000)
请去掉括号。示例:setTimeout(resume, 2000);
resume() 周围的括号导致立即评估该函数。有效地删除这些会使函数调用某种“指针”。
<html>
<head>
<script type="text/javascript">
function pause() {
//pause here
}
function resume() {
alert('resumed');
}
</script>
</head>
<body>
<img src="images/achiever.png" name="slide" alt="badge" width="130" height="130" onmouseover="pause()" onmouseout="javascript:setTimeout(resume, 2000)" />
</body>