根据vimeo js-api doc,事件finish - Fires when the video playback reaches the end.
出于某种原因,我无法让它工作,finish
事件总是立即调用,我做错了吗?
我试图让嵌入式视频在播放完毕后消失。我已关注this example by Drew Baker,但无法正常调用finish
事件。
我做了一个非常直截了当的jsbin here来证明这个问题。
这种行为似乎发生在Safari,Chrome和Firefox上(在Mac上)。
-
来自JSBIN的JS代码:$(document).ready(function() {
$('iframe.vimeo').each(function(){
Froogaloop(this).addEvent('ready', ready);
});
function ready(playerID){
Froogaloop(playerID).addEvent('play', play(playerID));
Froogaloop(playerID).addEvent('seek', seek);
Froogaloop(playerID).addEvent('finish', onFinish(playerID));
Froogaloop(playerID).api('play');
}
function play(playerID){
alert(playerID + " is playing!!!");
}
function seek() {
alert('Seeking');
}
function onFinish(playerID) {
alert(playerID + " finished!!!");
$('#'+playerID).remove();
}
});
答案 0 :(得分:3)
您正在执行函数,而不是将函数引用传递给addEvent
方法。
Froogaloop(playerID).addEvent('play', play);
Froogaloop(playerID).addEvent('seek', seek);
Froogaloop(playerID).addEvent('finish', onFinish);
请注意,Froogaloop
将playerID
作为参数传递给play
回调函数,我不确定它是否将playerID
作为参数传递给{ {1}}回调函数(虽然我猜它可能会这样)。