以下是我的代码。现在,当鼠标松开时,我想等待 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:
伪协议(protocol)与任何 onXYZ
属性一起使用,仅在需要 URL 的地方(例如 href
在 anchor 上)。所以你的 onmouseout
属性应该是这样的:
onmouseout="setTimeout(resume, 2000)"
onXYZ
属性中的代码始终是代码,而不是 URL。 javascript:
实际上最终成为一个毫无意义的 label .
关于javascript setTimeout()不添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15381245/