我是JQuery的新手。我搜索过以前的帖子但找不到任何内容。我试图从视频结束事件处理程序调用另一个函数。它不起作用。
$(document).ready(function(){
// doing something
$("#video1").bind("ended", NextFrag());
});
function NextFrag(){
Window.alert("Hello World");
}
这不起作用。我看不到任何警告打印“Hello World”。
基本上我需要解决上述问题才能完成以下任务。我想播放不同的视频片段。算法应该是这样的:
$(document).ready(function(){
NextFrag();
});
function NextFrag(){
// IF First FRAGMENT do this
$("#video1").html('<source src="FirstURLFromArray.mp4" type="video/mp4"></source>' );
// ELSE DO THIS
$("#video1").bind("ended", function(){
$("#video1").html('<source src="NextURLFromArray.mp4" type="video/mp4"></source>' );
NextFrag(); // call itself again.
});
}
任何帮助将非常感谢。 谢谢,
答案 0 :(得分:3)
尝试
$("#video1").bind("ended", NextFrag);
这会将函数作为回调函数传递,而不是对其进行评估。
答案 1 :(得分:2)
$(document).ready(function(){
$("#video1").on("ended", function() {
NextFrag();
});
});
function NextFrag(){
alert("Hello World");
}
答案 2 :(得分:0)
感谢您的帮助。 我刚刚完成了任务。我做了类似的事情并且正在发挥作用。
var index = 0;
$(document).ready(function(){
NextFrag();
});
function NextFrag(){
if (index < url.length){
if(index == 0 )
{
//The only difference for index=0 is that the player is not autoplay
$("#video1").html('<source src= " '+ url[index] + '" type="video/mp4"></source>' );
index++;
$("#video1").bind( "ended", NextFrag);
}else
{
$("#VideoContainer").html('<video id="video1" controls autoplay > "<source src= "'+ url[index]+ '" type="video/mp4"></source> </video>' );
index++;
$("#video1").bind( "ended", NextFrag);
}
}
}