2

我正在尝试使用 jquery控制JW FLV 播放器的实例。

我想要做的是有一系列链接,单击这些链接会将 XML 播放列表加载到播放器中。

通过遵循这里的教程,我已经让事情在功能方面基本上按照我想要的方式工作,但即使我也可以看到它像罪恶一样丑陋,因为目前我的锚看起来像这样:

<a class="media" href="#"
onclick="player.sendEvent('STOP');
player.sendEvent('LOAD',
'path/to/playlist.xml');
return false;">load playlist</a>

虽然这得到了玩家的参考

var player = null;
function playerReady(obj)
{
  player = gid(obj.id);
};

function gid(name)
{
  return document.getElementById(name);
};

我想做的是让我的锚看起来像这样:

<a class="media" href="#" rel="path/to/playlist.xml">load playlist</a>

然后使用 jquery 找到 class="media" 的锚点,读取元素的 rel 属性的值,然后将点击事件绑定到它,触发相应的功能。唉,这超出了我极其微薄的能力。

到目前为止,我有:

$('a.media').click(function()
  {
    playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist
  }
);

这显然是行不通的。有人愿意帮助一个白痴/n00b 吗?

我应该说,我真正想做的是学习,而不是让别人去做,所以如果你能解释一下,那就太棒了。

4

3 回答 3

4

您所做的对我来说似乎是正确的,尽管我不确定变量“玩家”是否在那里定义;这取决于上下文。

你可以做的是类似

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});
于 2009-03-13T19:18:25.060 回答
0
player.sendEvent('LOAD', playlist
}
);

检查您的支架嵌套。

否则,应该工作。但是 'rel' 不是放置 URL 的好地方,因为它只应该包含已知的标记。为什么不把它放在你期望的'href'中呢?你只需要'return false' 或'preventDefault' 来停止在舔之后被跟踪的链接。

function playerReady(obj)
{
    player = gid(obj.id);
};
function gid(name)
{
    return document.getElementById(name);
};

呃,这里的gid不是完全多余的吗?为什么不只是'player = obj'?

于 2009-03-13T19:22:49.573 回答
0

我在这里遇到和你一样的问题。我意识到你第一次调用创建播放器使用

var newplayer = SWFobject(width,height,playerid,version,background-color);
newplayer.addVarible(...);
newplayer.write(htmltaghold place for this player);

我记错了,但它就像上面的代码一样,之后您可以在 jQuery 中的函数 playerReady(thePlayer){} 中使用 var player = window.document[thePlayer.id]

jQuery("div#id").click(function(){
   your code
   player.sendEvent("NEXT");
});

player.sendEvent("PLAY"); ..ETC。希望我们可以讨论这个问题并改进 jQuery

于 2010-07-15T02:26:49.123 回答