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 $('body form:first').append( ... );
我在分页网格视图中遇到了类似的问题。 网格的第一页是启动fancybox,而重拍没有。
我认为这可能是与UpdatePanel相关的问题,它只刷新屏幕的一部分。
我解决了这个问题,取而代之:
有了这个: