我在 asp.net 页面上有一个 Fancybox(或更准确地说)多个精美的框。

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

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

更新 :一些代码..

我有一个数据绑定中继器,每个重复项目上都有一个 fancybox。

它们由(中继器外部)实例化

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

锚标记重复..

href="#watchvideo_<%#Eval("VideoId")%>"

就像一个 div 一样

id="watchvideo_<%#Eval("VideoId") %>

作为实例化 Flash 电影的脚本元素

是的,VideoIds 正在输出到页面。

更新 :不是闪光灯的问题..

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

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

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

——李

有帮助吗?

解决方案 3

这是更新面板所描述

这里.. 重新绑定事件jQuery中的Ajax更新后(的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
            });

   }
}

和它的工作!

- 李

其他提示

的问题是在使用$(document).ready()到的fancybox结合。此代码只执行一次,最初加载页面时。如果你想在每一个回传,同步或异步的功能的fancybox,更换$(document).ready()pageLoad(sender, args)。即

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

< STRONG>看到这个答案更多信息

难道实例化代码被插入在一段代码,其是不是一个回发后运行?

这可能会帮助别人,但附加的fancybox它的代码到元素......这是一切优秀和良好,但驻留OUTSIDE的asp.net

元素。我的回发的问题走了时,我改性的fancybox其DOM对象附加到元素:

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

我与分页网格视图类似的问题。网格的第一页被启动的fancybox而remaing没有。

我认为这可能与在UpdatePanel一个问题,它仅刷新的屏幕的一部分。

我解决这个替换的问题:

 <script>
        $(document).ready(function () {

            $("a.small").fancybox();

        });
    </script>

与此:

  <script>
        function pageLoad(sender, args) {
            $("a.small").fancybox();
        };
    </script>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top