javascript setTimeout()不添加延迟

标签 javascript

以下是我的代码。现在,当鼠标松开时,我想等待 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/

相关文章:

javascript - 从数组中查找所有可能的匹配字符串和子字符串

javascript - 以编程方式创建 aws API key 并将其添加到单一功能的使用计划中?

javascript - 获取 typescript 默认/初始参数类型以扩展它

javascript - 资源响应被削减

javascript - Flex vs ExtJS 用于内部系统前端,它们的优缺点是什么?

javascript - 用JS提交表单不进行基本验证

使用变量的 Javascript Date 对象

javascript - 模糊整个页面 - 鼠标悬停显示内部非模糊的圆圈

javascript - 调用事件后等待事件监听器完成

javascript - 在这个 switch 语句中执行 `return ' ' ;` or ` return null;` 是否更有意义?