2012-07-19 3 views
0

YouTube 고객의 웹 사이트 중 하나에 YouTube 동영상을 퍼가려고하고있어 재생이 완료되면 이미지를 표시 할 수 있어야합니다. 이 작업을 수행하는 가장 쉬운 방법은 기본 이미지가 표시 될 수 있도록 포함 된 div를 제거하는 것입니다.하지만 약간의 어려움이 있습니다. 나는 javascript에 대한 지식이 거의 없으며이 작업을 정상적으로 처리 할 수있는 잡스는 현재 사용할 수 없습니다.YouTube JS API - onStateChange

내가 갖고있는 문제는 포함 된 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(); 
    } 
} 

답변

1

귀하의 jQuery 셀렉터가 잘못된 것입니다.

$('ytapiplayer').remove(); 

당신은 ytapiplayer라는 HTML 요소의 모양을 말하고, 당신은이 ID라고하는 #를 사용해야합니다.

는 그래서 행은 다음과 같습니다

$('#ytapiplayer').remove(); 
+0

감사합니다 -되고 onStateChange가 호출되고 있지만 사업부는 다음과 같습니다 될

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

요구 :

그는이 제거되지 않습니다. 어떤 아이디어? –

+0

코드를 수정 했으므로, 거기에 디버깅 문을 추가하여'newState = 0'을 확인 했습니까? – epascarello

0

나는이 잠시 동안 여기되었습니다하지만 그의 의견은 여전히 ​​작동하지 않습니다 표시 알고있다.

코드의 다른 문제는 newState를 테스트하고 newState.data를 테스트해야하는 부분입니다. 그것은 전적으로 내 문제를 해결 도움이되지 아아, 빠른 응답 epascarello에 대한

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