javascript - 如何将 jQuery 事件处理程序附加到 YouTube 电影?

标签 javascript jquery flash jquery-plugins jquery-events

[编辑:对那些已经回答的人表示抱歉 -- 在我 sleep 不足的状态下,我忘记了这种特殊情况是 YouTube 电影,而不是 JW FLV 播放器。我看到有更多关于与 YouTube 电影互动的文档,所以我会继续研究,但也欢迎提供更多信息]

我在使用 jQuery 循环插件 (http://malsup.com/jquery/cycle/) 旋转的 div 集合中使用嵌入式 YouTube 视频。

当我点击其中一部电影开始播放时,我希望循环停止,但我不知道如何将 jQuery 事件处理程序附加到播放器对象。

这是我当前代码的样子(你不能直接用 jQuery 选择对象标签,所以我选择父 div,然后将对象元素作为第一个子元素):

$("div.feature-player").children(":first").click(function(event) {
   $('#features').cycle('stop');
});

但这并不能解决问题。我不是 Flash 作者,所以我不太熟悉 ActionScript,而且我以前从未在 JavaScript 和 Flash 影片之间设置交互。

最佳答案

YouTube 播放器 API 非常简单。您只需监听 onStateChange 事件并根据状态控制循环插件:

这是一个工作演示:http://jsbin.com/izolo (可通过 http://jsbin.com/izolo/edit 编辑)

相关代码:

function handlePlayerStateChange (state) {
  switch (state) {
    case 1:
    case 3:
      // Video has begun playing/buffering
      videoContainer.cycle('pause');
      break;
    case 2:
    case 0:
      // Video has been paused/ended
      videoContainer.cycle('resume');
      break;
  }
}

function onYouTubePlayerReady(id){
  var player = $('#' + id)[0];
  if (player.addEventListener) {
    player.addEventListener('onStateChange', 'handlePlayerStateChange');
  }
  else {
    player.attachEvent('onStateChange', 'handlePlayerStateChange');
  }
}

关于javascript - 如何将 jQuery 事件处理程序附加到 YouTube 电影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527617/

相关文章:

java - 捕获按键按下的 ajax 事件,无需输入字段

javascript - 在浏览器中加载浮点图像并将其用作 WebGL 中的纹理

javascript - 取消选中复选框后返回 "on"值

javascript - 扩展 Aloha Editor 的格式插件

flash - 在 Flash 9、Actionscript 3 中播放短声音的延迟

javascript - 具有部分的 Ractive 递归 - 导致超出最大调用堆栈大小

javascript - AngularJS ng-repeat 获取单击的按钮的索引并在 jquery 中使用

javascript - 为什么我的视差滚动有点偏离?

javascript - 通过 JQuery Ajax 加载 ZeroClipboard 或 ZClip(复制到剪贴板按钮)

flash - 柔性 : SSL Certificate information gathering