div内的Fancybox,在onclick事件后不起作用

时间:2011-07-04 03:49:07

标签: javascript jquery html onclick fancybox

大家好,非常感谢你的时间。基本上我正在开发的是网页上的一长串视频。我有一个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({

2 个答案:

答案 0 :(得分:1)

使用live()

示例

而不是$('#id').click(function(){});使用

$('#id').live('click',function(){}); 

live将适用于动态添加的对象

答案 1 :(得分:0)

在您使用javascript更改元素后(例如,当您执行.innerHTML = ""时),您必须再次调用初始代码,包括调用fancybox插件,

您也可以尝试使用.live()代替.bind()