0

我正在尝试将 YouTube 视频嵌入到我们客户的一个网站上,它需要能够在播放完毕后显示图像。我认为最简单的方法是删除包含的 div,以便显示底层图像。但是,我遇到了一点困难。我对 javascript 知之甚少,而且我通常将这项工作交给的小伙子现在不可用。

我遇到的问题是包含的 div 没有被删除。播放完成后,播放器仅显示相关视频列表 - 不会神奇地消失!

任何人都可以就我到目前为止编写的代码提供建议吗?

谢谢

-铝

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="ytapiplayer">
    You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script type="text/javascript">

var params = { allowScriptAccess: "always"  };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/VIDEO-ID?enablejsapi=1&playerapiid=ytplayer&version=3&autoplay=1&controls=0&modestbranding=1&showinfo=0&autohide=1",
                   "ytapiplayer", "621", "244", "8", null, null, params, atts);
// listen
function onYouTubePlayerReady(playerId) {
  var ytplayer = getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
// closediv 
function onytplayerStateChange(newState) {
   if (newState === 0){
        $('ytapiplayer').remove();
   }
}

4

2 回答 2

1

你的 jQuery 选择器是错误的。

$('ytapiplayer').remove();  

你说寻找一个名为 ytapiplayer 的 html 元素,你需要使用 a#来表示它是一个 id。

所以该行应该是:

$('#ytapiplayer').remove();
于 2012-07-19T14:26:43.963 回答
0

我知道这已经有一段时间了,但他的评论表明它仍然不起作用。

代码的另一个问题是他在哪里测试 newState,他应​​该在哪里测试 newState.data。

他有:

function onytplayerStateChange(newState) {
   if (newState === 0){
        $('ytapiplayer').remove();
   }
}

需要是:

function onytplayerStateChange(newState) {
   if (newState.data === 0){
        $('ytapiplayer').remove();
   }
}
于 2013-03-08T16:54:31.920 回答