2012-12-16 3 views
1

여기에 demo
사용자가 빨간색 화살표를 클릭하면 관련 동영상으로 건너 뛰고 싶습니다.
아래에는 데모 기능과 다른 원본 재생 목록 렌더링 기능이 있습니다. 내 원래의 기능을 수정하는 가장 간단한 방법은 img.src= 값을 내 빨간색 화살표 URL로 바꾸는 것입니다. 그러나 그것은 화살표 이미지로 인해 가장 똑똑한 방법이 아니라 동적으로 변화합니다. 그렇다면 사용자가 빨간색 화살표를 클릭하여 관련 동영상으로 건너 뛰게하려면 어떻게해야합니까?익명 기능을 클릭 이벤트에 지정하기

function ytplayer_render_playlist() 
    { 
    for (var i = 0; i < ytplayer_playlist.length; i++) 
    { 
     var img = document.createElement("img"); 
     img.src = "http://img.youtube.com/vi/" + ytplayer_playlist[ i ] + "/default.jpg"; 
     var a = document.createElement("a"); 
     a.href = "#ytplayer"; 

     a.onclick = (
     function(j) 
     { 
      return function() 
      { 
      ytplayer_playitem = j; 
      ytplayer_playlazy(1000); 
      }; 
     } 
    )(i); 
     a.appendChild(img); 
     document.getElementById("ytplayer_div2").appendChild(a); 
    } 
    } 

답변

0

값 j를 다음 함수로 전달하지 않습니다.

a.onclick = (
    function(j) 
    { 
     return function(j) 
     { 
     ytplayer_playitem = j; 
     ytplayer_playlazy(1000); 
     }; 
    } 
)(i); 

그러나 두 번째 기능과 (i)에 대한 좋은 이유는 알 수 없습니다. 결국에는 트리밍이 필요할 수도 있습니다. 나는 그 일을 아무것도하지 않는다고 생각합니다.

a.onclick = (
    function(j) 
    { 
     ytplayer_playitem = j; 
     ytplayer_playlazy(1000); 
    } 
); 
+0

j는 범위에서 사용할 수 있어야합니다. 다른 함수로 반환되는 함수를 랩핑하면 (자), 로컬의 기호 테이블을 보호 해, 소거 해, 각 호출로 돌아 왔을 때 깨끗한 참조가됩니다. –

+0

후행의'(i)'는, 매개 변수를 원하는 anon을 생성하는 anon에게 건네줍니다. .. –

+0

두 번째 댓글이 재미있을 것 같아요, Google이나 내가 확인할 수있는 링크가있는 용어가 있습니까? 건배 –

관련 문제