目前正在尝试检测播放列表中的YouTube视频何时结束,以便我可以播放下一个(Adding event handler to loop through dynamically created playlist (YouTube API))。我现在试图弄清楚一个变量何时等于另一个变量,所以我可以导航到播放列表中的下一个视频。
以下是检测视频何时结束并将视频ID保存到div(stopID)的代码:
function stopCycle(event) {
if (event.data == YT.PlayerState.ENDED) {
var url = event.target.getVideoUrl();
var match = url.match(/[?&]v=([^&]+)/);
var videoId = match[1];
$('#stopID').html(videoId);
}
}
这是我在点击视频的视频ID等于stopCycle中的视频ID(即视频结束时)时检测(并通过警报测试)的尝试:
$('#Playlist').on('click', '.playlistYT', function(){
$('#subHistory').click();
videoID = $(this).attr("src").slice(27,38);
$('#infoID').val(videoID);
player.loadVideoById(videoID );
var nextVideo = $(this).parent().next().find('.playlistYT');
$.when($('#stopID').html() == videoID).then(function(){
alert("asd");
});
目前,我立即收到警报,即在stopID div甚至包含视频ID之前。 $.when功能在哪里出错了?我应该坚持使用if / else语句吗?
答案 0 :(得分:1)
$.when
接受一个promise参数。只需使用if条件来检查相等性。