jquery点击播放视频

时间:2012-05-06 17:57:38

标签: javascript jquery html jquery-mobile

我从服务器上获得了一个动态构建的html表。最终它给了我一张看起来像的表:

<div id="player"></div>

<table id="webcam-table">
            <thead>
            <tr>
                <th>Camera Name</th>
                <th>Date Created</th>
            </tr>
            </thead>
            <tbody>             
            <tr >
                <td onclick="DoNav('http://myserver.com:1935/recordings/myfile1.mp4');">
                    Default camera 
                </td>
                <td onclick="DoNav('http://myserver:1935/recordings/myfile1.mp4');">
                    06 May 2012 07:25:01 
                </td>
                </tr>

            <tr >
                <td onclick="DoNav('http://myserver.com:1935/recordings/myfile2.mp4');">
                    Default camera 
                </td>
                <td onclick="DoNav('http://myserver.com:1935/recordings/myfile2.mp4');">
                    06 May 2012 07:24:47 
                </td>
                </tr>
</tbody></table>

如果有人点击表格上的行,则会调用DoNav函数插入视频。

function DoNav(theUrl)
{
   var mydiv = $("#player");
   var myvideo = $("<video id='myfileplayer' src='"+ theUrl +"' width='280' height='200' controls></video>");
   $mydiv.append($myvideo);
   $(myvideo).click(function(){
       $mydiv.show();
});
}

如果点击任意一行,我目前没有视频。我正在为iDevices创建这个代码,所以我很难获得任何调试信息。但它似乎没有显示任何JavaScript错误。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您似乎使用$

引用了变量
var mydiv

可以通过mydiv.property而不是$mydiv.property

访问

您应该查看jQuery on函数,而不是对标记中的每个表列使用onclick

答案 1 :(得分:1)

而非$mydiv.append($myvideo);尝试mydiv.append($myvideo); 同时将$(myvideo).click更改为myvideo.click$mydiv.show();  到mydiv.show();

答案 2 :(得分:1)

function DoNav(theUrl)
{
   var mydiv = $("#player");
   var myvideo = $("<video id='myfileplayer' src='"+ theUrl +"' width='280' height='200' controls></video>");
   mydiv.append(myvideo);
   $("#myfileplayer").click(function(){
       //$(this).load(); //active this later
       $(this).play();
   });
}