定时功能和用户启动功能之间的冲突
Conflict between timed function and user initiated function
我一直在摆弄这一点,这是我从头开始写的javascript,除了最近遇到的一个小问题外,它运行得很好。该代码的目的是创建一个相当简单的幻灯片,自动循环播放照片(每5秒)。
当我添加了允许用户通过单击链接选择系列中的照片的功能时,问题就出现了。现在,当用户继续点击照片时,5秒的持续时间急剧减少,我不知道是什么原因造成的
如果有人愿意看一看并提出一些建设性的批评,我已经将重新创建和测试代码所需的所有代码复制到了JSFiddle中。
http://jsfiddle.net/h8Act/1/
每次用户单击这些链接时,他们都会启动另一轮sireTimer()
,从而启动另一个setTimeout
,因此看起来旋转之间的时间缩短了,而实际上,有多个函数实例启动了旋转功能。
尝试添加一个标志,以避免启动附加的setTimeout
s
我不会在单个var中记住超时,而是在数组中
durations = [];
/* ... */
// in sireTimer
// cancel all timeouts
for (var i=0; i< durations.length; i++) {
clearTimeout(durations[i])
}
// clear timeout array
durations = [];
durations.push(setTimeout ...)
更改窗口和选项卡也可能会导致一些超时。所以只需清除所有超时
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- jQuery插件与其他基本的显示/隐藏功能冲突
- 悬停/鼠标悬停功能冲突
- 两个相同的元素需要执行相同的功能,但存在冲突
- 链接单击上的Javascript和Jquery无冲突功能
- 定时功能和用户启动功能之间的冲突
- 由于滚动冲突,JQuery在单击或模糊、停止或终止功能时进行查询
- jQuery表单验证与邮件检查功能冲突
- 锚点过渡与标签引导点击功能冲突
- JavaScript使对象一个全局窗口对象?(无冲突功能)
- jQuery的灯箱功能和砌体/无尽滚动之间的冲突
- Javascript两个窗口.点击功能冲突