我目前的剧本有点破碎。单击表格中的链接可成功创建我的div叠加层。然后我关闭我的div并单击另一个链接并再次打开div覆盖,关闭按钮停止工作。
我猜测问题是在使用“replaceWith”后DOM再次无法识别我的空div。
任何帮助都将不胜感激。
<table id="tableBin" border="0">
<tr>
<th>name</th>
<th>description</th>
</tr>
<tbody>
<tr>
<td><a href="clip/location/A001C012_111129_R1VL.mov">A001C012_111129_R1VL.mov</a></td>
<td>Adipiscing elit. Fusce bibendum, leo non.</td>
</tr>
<tr>
<td><a href="clip/location/A001C012_111130_R1VL.mov">A001C012_111130_R1VL.mov</a></td>
<td>Consectetur adipiscing elit. Fusce bibendum, leo non.</td>
</tr>
</tbody>
</table>
<div id="overlay">
<div id="blackOut" class="hide">
<div id="box" class="hide">
<div id="controls" class="hide"><a href="#"><img border="0" alt="close" width="25px" hieght="25px" src="images/close.png"></a></div>
</div>
</div>
</div>
<script>
$("#tableBin a").on("click", function(e) {
e.preventDefault();
var url = $(this).attr("href");
var video = jQuery('<embed width="640" height="375" ShowControls=1 src="'+url+'" /></embed>');
$('#blackOut').removeClass("hide").addClass("blackOut");
$('#box').removeClass("hide").addClass("box");
$('#controls').removeClass("hide").addClass("controls");
$('#box').append(video);
});
</script>
答案 0 :(得分:1)
这似乎有效:
http://jsfiddle.net/aramk/WesNb/2/
$(document).ready(function () {
$("#tableBin a.video").click(function(e) {
e.preventDefault();
var url = $(this).attr("href");
var video = $('<embed width="640" height="375" ShowControls=1 src="'+url+'" /></embed>');
$('#overlay').removeClass("hide");
$('#blackOut').removeClass("hide").addClass("blackOut");
$('#box').removeClass("hide").addClass("box");
$('#controls').removeClass("hide").addClass("controls");
$('#video-container').removeClass("hide").html(video);
});
$("#close-button").click(function(e) {
$('#overlay').addClass("hide");
$('#video-container').addClass("hide").html("");
return false;
});
});
我不确定您是否要更换播放视频,因此我添加了一个容器,其内容会在每次点击时替换为已加载的视频。
此外,您的原始代码在单击关闭时替换了所有内容 - 这非常具有破坏性且无法维护。改变HTML中的任何内容都意味着改变JS中的所有内容 - 在字符串中 - 这非常混乱。
答案 1 :(得分:0)
尝试
$("#box img").on("click", function(e) {
$('#overlay').html('<div id="blackOut" class="hide"><div id="box" class="hide"><div id="controls" class="hide"><a href="#"><img border="0" alt="close" width="25px" hieght="25px" src="images/close.png"></a></div></div></div>');
});
代替