为CLICK事件分配匿名函数

时间:2012-12-16 10:30:55

标签: javascript closures youtube-api anonymous-function

这是 demo
如果用户点击红色箭头我想跳过相关视频。
下面有原始播放列表渲染功能,与演示中的功能不同。使用我的红色箭头URL修改原始函数替换img.src=值的最简单方法。但由于箭头图像没有动态变化,因此它不是最聪明的方式。那么,如何通过单击红色箭头让用户跳到相关视频?

 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 );
    }
  }

1 个答案:

答案 0 :(得分: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 );
    }
  );