我有一个简单的脚本:
var bannerNum = 2;
window.setInterval(function () {
bannerSwap(bannerNum);
}, 5000);
function bannerSwap(bannerNum) {
if (bannerNum == 5) {
bannerNum = 1;
document.getElementById('b1').style.display = "block";
document.getElementById('b4').style.display = "none";
return;
}
document.getElementById('b' + (bannerNum - 1)).style.display = "none";
document.getElementById('b' + bannerNum).style.display = "block";
bannerNum++;
return;
}
它只是每5秒循环一次该函数并交换横幅图像(4个div,所有显示:除第一个之外没有,名为b1到b4)。向上拉页面,它第一次切换(bannerNum = 3),但在此之后它永远不会切换。我在最后提醒了bannerNum并且看到它从2切换到3然后它每5秒弹出一次,说它是3次反复。那么为什么不增量?
答案 0 :(得分:1)
尝试
window.setInterval(function () {
bannerSwap(bannerNum++);
}, 5000);
删除bannerSwap函数中的bannerNum ++
修改的
您的代码无法正常工作,因为您没有修改实际的bannerNum
变量,而是修改了您使用相同名称接收的参数。
为使您的代码完全正常工作,您应该执行以下操作之一
bannerNum
进行所有修改
bannerSwap
签名中删除参数,以便获得全局变量的范围答案 1 :(得分:0)
如评论中所述,请从bannerNum
的参数列表中删除bannerSwap
,如下所示:
<script>
var bannerNum = 2;
window.setInterval(function() {
bannerSwap();
},5000);
function bannerSwap() {
// Your code here (it will work)
}
</script>