【发布时间】:2014-04-20 22:37:18
【问题描述】:
目前正在尝试检测播放列表中的 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 语句吗?
【问题讨论】:
-
请阅读文档!
-
这是我正在阅读的内容,但我不太明白:api.jquery.com/jQuery.when。如果有更基础的教程,我很乐意阅读。
-
您是否阅读了顶部的描述“提供了一种执行回调函数的方法……通常是表示异步事件的延迟对象。”
-
在我读到那个位之后开始浏览 jquery 文档上的延迟对象,并假设它与在 ajax 上调用的对象有关?这就是大多数示例的工作方式,所以我认为它与这段代码无关,这就是为什么我使用 $.when 打了一个问号,但 if 条件似乎不起作用。
标签: javascript jquery youtube-api jquery-deferred .when