Jquery Fancybox在回发后无法正常工作

我在asp.net页面上有一个Fancybox(或更准确地说)一些奇特的盒子。

我的Fancybox (jquery插件)工作正常,直到页面上发生回发然后它拒绝工作。

有什么想法吗? 有人经历过类似的行为

更新:一些代码..

我有一个数据包转发器,每个重复项目都有一个fancybox。

它们是由(在中继器之外)实现的

$(document).ready(function() { $("a.watchvideo").fancybox({ 'overlayShow': false, 'frameWidth' : 480, 'frameHeight' : 400 }); }); 

锚标签重复..

HREF = “#watchvideo _ ”

就像是一个div

 id="watchvideo_ 

作为实现flash电影的脚本元素

是的,VideoIds正在输出页面。

更新:这不是闪存的问题..

这不是闪存的问题,因为我在没有闪光灯的情况下尝试过它,它甚至不会弹出一个带有简单消息的窗口。

更新:我想知道它是否是更新面板。

在Ajax更新后重新绑定jQuery中的事件(updatepanel)

– 李

问题在于使用$(document).ready()来绑定fancybox。 此代码仅在最初加载页面时执行一次。 如果您想在每个回发,同步或异步上使用fancyboxfunction,请将$(document).ready()替换为pageLoad(sender, args) 。 即

 function pageLoad(sender, args) { $("a.watchvideo").fancybox({ 'overlayShow': false, 'frameWidth' : 480, 'frameHeight' : 400 }); } 

有关详细信息,请参阅此答案

难道是实例化代码被插入到一段代码中,而这段代码在回发后没有运行吗?

这是所描述的更新面板

这里.. 在Ajax更新后重新绑定jQuery中的事件(updatepanel)

如我所知,我只是更换了

 $(document).ready(function() { $("a.watchvideo").fancybox({ 'overlayShow': false, 'frameWidth' : 480, 'frameHeight' : 400 }); }); 

 function pageLoad(sender, args) { if(args.get_isPartialLoad()) { $("a.watchvideo").fancybox({ 'overlayShow': false, 'frameWidth' : 480, 'frameHeight' : 400 }); } } 

它工作了!

– 李

这可能对其他人有所帮助,但是FancyBox将它的代码附加到元素……这一切都很好,但是它存在于asp.net

元素之外。 当我修改FancyBox将其dom对象附加到
元素时,我的回发问题消失了:

 $('body form:first').append( ... ); 

我在分页网格视图中遇到了类似的问题。 网格的第一页是启动fancybox,而重拍没有。

我认为这可能是与UpdatePanel相关的问题,它只刷新屏幕的一部分。

我解决了这个问题,取而代之:

   

有了这个: