我从服务器上获得了一个动态构建的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错误。我做错了什么?
答案 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();
});
}