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

时间:2014-03-15 14:52:26

标签: javascript jquery youtube-api jquery-deferred .when

目前正在尝试检测播放列表中的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语句吗?

1 个答案:

答案 0 :(得分:1)

$.when接受一个promise参数。只需使用if条件来检查相等性。