大家好,非常感谢你的时间。基本上我正在开发的是网页上的一长串视频。我有一个div标签,包括10个视频链接。这些链接打开一个iframe html,其中嵌入了实际的视频。所以父页面没有视频,只有链接,主持人有href =“video.html”,video.html中有视频。最初一切都很好,但之后我还需要一个排序功能。我制作了对视频进行排序的排序功能。点击视频更改。这样做的方式是使用.innerHTML =“”更改div中的内容。内容确实发生了变化,我可以看到新的视频链接和预览图像,但是当我点击图像时,href链接会在新窗口或父窗口中打开,不确定,但不重要,因为Fancybox会不开放,我尝试了一些不同的东西,但仍然没有结果。所以我问的问题是为什么当动态更改锚标签时Fancybox不起作用。请帮忙
好的,谢谢,我不确定如何使用.live和.bind,但我会调查一下。现在,这是我的代码
<div id="mask">
</div>
<script type="text/javascript" language="javascript">
populate();
function populate()
{
var mask=document.getElementById('mask');
mask.innerHTML = '';
mask.innerHTML = allvideos[3] + allvideos[0];
}
//Then allvideos[3] for example would be like <a href="videos.html"/>
//So up to this part everything works. But now if i try and do
</script>
<div onclick="change();" >doesntmatter</div>
<script>
//And the change function
function change() {
var mask=document.getElementById('mask');
mask.innerHTML = '';
mask.innerHTML = allvideos[3] + allvideos[0];
}
</script>
所以基本相同的功能,但fancybox停止工作。现在,Fancybox代码在开头被调用,如下所示:
$(document).ready(function() { $("a.videos").fancybox({
=====已解决=====
我不得不改变
$(document).ready(function() {$("a.videos").fancybox({
到
$(document).ready(function() {
_$('a.video').live('mouseenter', function(){_
$(this).fancybox({
答案 0 :(得分:1)
使用live()
示例
而不是$('#id').click(function(){});
使用
$('#id').live('click',function(){});
live将适用于动态添加的对象
答案 1 :(得分:0)
在您使用javascript更改元素后(例如,当您执行.innerHTML = ""
时),您必须再次调用初始代码,包括调用fancybox插件,
您也可以尝试使用.live()
代替.bind()
。