我对 JavaScript/jQuery 还很陌生,但是已经制作了一个脚本来更改背景图片。
第一个脚本
第一个脚本版本运行良好,并执行以下操作:
- 创建一个 setInterval 计时器,它调用函数 backgroundChange() 每 7 秒运行一次
- 决定下一张图片URL
- 设置背景图片
这很好用,但问题是当网站处于活动状态时,在连接速度较慢的情况下,背景图片不会及时加载以进行下一次计时器更改。
新脚本
所以新版本:
- 创建一个 setTimeout 计时器,该计时器调用函数 backgroundChange() 以在 7 秒后运行
var theTimer = setTimeout(backgroundChange, 7000);
- clearsTimeout (当然我不应该运行这个?)
window.clearTimeout(theTimer);
- 决定下一张图片URL
- 等到图片加载完毕:
- 然后设置背景图片
- 然后添加一个新的 setTimeout 计时器
$('#testImage').attr('src', imageText).load(function()
{
$('#backgroundTop').fadeIn(timeIn,function()
{
theTimer = setTimeout(backgroundTimer, 7000);
});
});
问题是,每当计时器运行并存在于 .load 函数中时,计时器现在似乎被调用了两倍的次数。
我还没有故意不发布我的代码,因为我想首先确保我的理解是正确的,而不是有人只是修复我的代码。
太极了。