javascript - 使用setInterval和Loop播放音频

标签 javascript arrays loops for-loop

我有这个数组:

var song = ['note1.mp3', 'note2.mp3', 'note3.mp3', 'note4.mp3']

for(i = 0; i < song.length; i++) {
  setInterval(function() {

    //play song[i]
    //or console.log(song[i]);

  }, 1000);

}


但这不起作用,有人知道为什么吗?我要播放note1.mp3,然后播放note2,note3和note4。

谢谢!

最佳答案

您遇到范围问题。所有回调都有一个i,您必须为每个i创建一个作用域。您还必须更改回调。

http://jsfiddle.net/1xy4j3eq/7/

var song = ['a', 'b', 'c', 'd', 'e'];

$.each(song, function (i) {
    setTimeout(function () {
        $("div").text(song[i]);
    }, i * 1000);
});

关于javascript - 使用setInterval和Loop播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25951039/

相关文章:

javascript - Javascript(回到基础知识)数组?

javascript - 链接函数中的$ scope.watch()

javascript - Google Places自动完成功能不起作用

javascript - 循环内的Parse.com查询

algorithm - 两个非嵌套循环的大 O 表示法

javascript - 在 Promise 中定义异步函数

c - 在C中返回-1?

php - 为什么我需要在 foreach 循环后取消设置 $value

c - 计算给定字符串中有多少个用空格分隔的整数值

R:摆脱 for 循环和加速代码