0

我是 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.       
      });
}

任何帮助将不胜感激。谢谢,

4

3 回答 3

3

尝试

$("#video1").bind("ended", NextFrag);

这会将函数作为回调传递,而不是评估它。

于 2012-12-25T19:35:22.930 回答
2
$(document).ready(function(){
   $("#video1").on("ended", function() {
    NextFrag();
   });
});

function NextFrag(){
   alert("Hello World");
}
于 2012-12-25T19:36:48.757 回答
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);
    } 
}
}
于 2012-12-28T15:09:21.380 回答