javascript - 遍历数组时出了什么问题?

标签 javascript

for循环我正在迭代字符串数组,同时更改 src图像但是,setTimeout方法不持有 myfun 3000 毫秒,因此 for 循环只是眨眼间迭代到数组的最后一个字符串。我哪里出错了?

<script>
 function myfunction(){
 var arr = ["mind.jpg","images.jpg","external.jpg"];
 var image = document.getElementById("IMAGE");

 for(var i =0;i<arr.length;i++)
 {
    setTimeout(myfun,3000);      
    image.src = arr[i];

 }
 }   
 function myfun(){

 }
</script>

最佳答案

如果你想做幻灯片之类的东西,你需要这样做:

function myfunction() {
    var arr = ["mind.jpg","images.jpg","external.jpg"];
    var image = document.getElementById("IMAGE");
    var i = 0;
    function next() {
        image.src = arr[i];
        if(++i === arr.length) {
            i = 0
        }
    }
    setInterval(next, 3000)
}

关于javascript - 遍历数组时出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606255/

相关文章:

javascript - Highcharts,导出时如何本地化语言

javascript - React Native AsyncStorage 第一次尝试时无法获取

javascript - 为什么会出现 Uncaught TypeError : Cannot read property 'dataSource' of undefined

c# - 发送 ajax POST 请求接收 GET 请求

javascript - OpenLayers 2.13 吃鼠标左键单击?

javascript - 哪些视频播放器不需要文件格式转换?

单击 asp.net 中按钮的 JavaScript 在母版页中不起作用

javascript - 有条件地更新 javascript 对象

javascript - 多个不同单词的正则表达式,在空格之间

javascript - async.js waterfall 中未处理的 promise 拒绝警告