Javascript 如何动态地执行此操作?
我正在以这种方式编写代码,但我想在循环中完成。我想要有活力。我怎么做Javascript 如何动态地执行此操作?,javascript,loops,for-loop,Javascript,Loops,For Loop,我正在以这种方式编写代码,但我想在循环中完成。我想要有活力。我怎么做 $("#sound-player").attr("src",secilen[0]); var x = document.getElementById("sound-player"); x.play(); x.onended = function() { $("#sound-player").attr("src",secilen[1]); var x = document.getElementById("sound-pl
$("#sound-player").attr("src",secilen[0]);
var x = document.getElementById("sound-player");
x.play();
x.onended = function() {
$("#sound-player").attr("src",secilen[1]);
var x = document.getElementById("sound-player");
x.play();
x.onended = function() {
$("#sound-player").attr("src",secilen[2]);
var x = document.getElementById("sound-player");
x.play();
x.onended = function() {
$("#sound-player").attr("src",secilen[3]);
var x = document.getElementById("sound-player");
x.play();
x.onended = function() {
alert("bitti");
}
}
}
}
您可以使用递归:
/*缓存播放器*/
var x=document.getElementById(“声音播放器”);
/*创建一个iLife并递归地执行它*/
(函数递归播放(当前、最后){
x、 src=安全[当前];
x、 play();
x、 onended=函数(){
/*如果当前不是最后一个,则播放下一个*/
如果(当前<上次)以递归方式播放(++当前,上次);
else警报(“bitti”);
};
})(0,secilen.length-1);
重用变量x
,而不是重新定义它
var player = document.getElementById('sound-player');
var i = 0;
function playSource(src){
// change the src attribute and play.
if (secilen[scr] !== undefined) {
player.setAttribute('src', secilen[src]);
player.play();
}
else {
alert('bitti')
}
}
player.onended = function(){
i++;
playSource(i);
}
playSource(i); //start playing the first sound