Javascript 使用jQuery($.when()?)检测变量何时等于另一个变量

Javascript 使用jQuery($.when()?)检测变量何时等于另一个变量,javascript,jquery,youtube-api,jquery-deferred,.when,Javascript,Jquery,Youtube Api,Jquery Deferred,.when,当前正在尝试检测播放列表中的YouTube视频何时结束,以便我可以播放下一个()。我现在试图找出一个变量何时等于另一个变量,这样我就可以导航到播放列表中的下一个视频 以下是用于检测视频何时结束并将视频ID保存到div(stopID)的代码: 以下是我尝试检测(并通过警报测试)点击视频的视频ID何时等于停止循环中的视频ID(即视频结束时): 目前,我会立即收到警报,即在stopID div中甚至包含视频ID之前。$.when函数的错误在哪里?我应该坚持使用if/else语句吗?$。当接受promi

当前正在尝试检测播放列表中的YouTube视频何时结束,以便我可以播放下一个()。我现在试图找出一个变量何时等于另一个变量,这样我就可以导航到播放列表中的下一个视频

以下是用于检测视频何时结束并将视频ID保存到div(stopID)的代码:

以下是我尝试检测(并通过警报测试)点击视频的视频ID何时等于停止循环中的视频ID(即视频结束时):


目前,我会立即收到警报,即在stopID div中甚至包含视频ID之前。$.when函数的错误在哪里?我应该坚持使用if/else语句吗?

$。当
接受promise参数时。只需使用if条件来检查相等性。

请阅读文档!这是我正在读的,但我不太明白:。如果有更基础的教程,我很乐意阅读。您是否阅读了顶部的描述“提供了一种执行回调函数的方法……通常是表示异步事件的延迟对象”。在我阅读了这一部分之后,我开始在jquery文档上查看延迟对象,并假设它与ajax上调用的对象有关?这就是大多数示例的工作方式,因此我假设它与此代码无关,这就是为什么我使用$.when打了一个问号,但if条件似乎不起作用。我事先尝试了if($('#stopID').html()==videoID)(函数(){alert(“asd”)},但这根本不起作用:/抱歉,我的意思是:if($('#stopID')).html()==videoID){alert(“asd”);}阅读文档。还可以使用console.log或浏览器开发人员工具查看您正在检查的两个相等项的实际值。
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);
      }
  }
    $('#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");
      });