2012-01-28 63 views
0

我有一个从数据库建立起来的表。该循环通过创建一个行:当用户点击在表中的行它把它发送到DoNav功能启动通过URL传递onclick流水游戏

<tr > 
    <td onclick="DoNav('<?php echo $result_videos[$i]["video_url"]; ?>');"> 
    <?php echo $result_videos[$i]["camera_name"]; ?> 
    </td> 
    <td onclick="DoNav('<?php echo $result_videos[$i]["video_url"]; ?>');"> 
    <?php echo setlocalTime($result_videos[$i]["video_datetime"]); ?> 
    </td> 
.... 
</tr> 

的Flowplayer: VAR JS = jQuery.noConflict(); function DoNav(theUrl) // flowplayer(“player”,“flowplayer/flowplayer-3.2.7.swf”,theUrl); var mydiv = js(“#player”); var $ myhref = js(“”); mydiv.append($ myhref); }

我尝试将玩家建立为href。它必须是一个href,而不是像评论的行(这是我以前的版本,这可行但对iOS不会有帮助)

这是我之前使用的div和最后一次在body中的流水游戏调用:

<div id="player" style="display:block;width:320px;height:240px;background-image:url(images/videoPlaceHolder01.JPG)"></div> 
<script language="JavaScript"> 
flowplayer("player", "flowplayer/flowplayer-3.2.7.swf"); 
</script> 

点击行无效,我看不到任何错误。很确定我正在将div和href的行为混合在一起,这对于流水游戏来说是不对的。事实上,我在这里混合了太多东西,并想知道是否有一种更简单的方法来创建onclick事件,然后在我继续这个疯狂的道路之前启动流式播放器。注意我确实想保留飞溅图像。

+0

你有一个例子地方? – Martin 2012-01-31 15:51:45

+0

看起来您正在附加一个空的锚标记,而不是在图像上缠绕锚标记。另外,怎么了与JS(...)的东西? – j08691 2012-01-31 21:26:47

回答

0

看看这个解。

http://jsfiddle.net/SAZd4/

开始我存储在一个HTML5数据结构的视频网址。这是data-videourl。然后你可以使用jQuery的数据方法来检索这个值。然后我监视td的click事件以获取url并构造一个包含必要参数的jQuery链接对象。最后,你必须使用流水游戏代码实例化玩家。

<table> 
    <tr > 
     <td class="video" data-videourl="http://pseudo01.hddn.com/vod/demo.flowplayervod/flowplayer-700.flv">Video X</td> 
    </tr> 
</table> 

 

$('td.video').click(function() { 
    //get video url from data-videourl html5 param 
    var videourl = $(this).data('videourl'); 

    //create a link tag to contain the video 
    var $video = $('<a />', { 
     href: videourl, 
     id: 'player' 
    }); 

    //append link to page 
    $('body').append($video); 

    //instantiate flowplayer on new video object 
    flowplayer("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.7.swf", { 
     clip: { 

      // these two configuration variables does the trick 
      autoPlay: true, 
      autoBuffering: true // <- do not place a comma here 
     } 
    }); 
}); 
+0

小提琴,小提琴很好用。但在我的代码中,我得到:'$(“td.video”)为null'。不确定可能的差异。我在tr中有多个td元素,但我将它添加到你的小提琴中,并且仍然可以正常工作。唯一的另外一点是这个表是动态的,并且是从循环构建的。不知道这是否与众不同? – Tom 2012-02-01 02:38:41

+0

@TomPepernic - 你的td上有他们的班'视频'吗?该选择器意味着,无论何时点击'class = video'的'td',都要执行此操作。 – mrtsherman 2012-02-01 20:07:58

+0

是的,我完全复制你的东西。我单独尝试了你的代码,并得到了同样的结果。所以一定是我的配置的东西? – Tom 2012-02-01 20:18:51

0

我不知道这可能是问题,但你错过了这条线的双引号:

var $myhref = js("<a href=" + theUrl + " id=player></a>"); 

您应该修正如下:

var $myhref = js("<a href=\"" + theUrl + "\" id=\"player\"></a>");