【问题标题】:Jquery Fancybox not working after postbackJquery Fancybox 在回发后不工作
【发布时间】:2009-09-25 13:13:10
【问题描述】:

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

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

有什么想法吗?有人遇到过类似的行为吗?

更新:一些代码..

我有一个数据绑定中继器,每个重复项上都有一个花式框。

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

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

锚标签重复..

href="#watchvideo_"

就像一个带有

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

As 是一个实例化 Flash 电影的脚本元素

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

更新:闪光灯没有问题..

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

更新:不知道是不是更新面板。

Rebinding events in jQuery after Ajax update (updatepanel)

--李

【问题讨论】:

  • 请发布违规代码,以便我们提供帮助。没有代码,我们所能做的就是推测

标签: javascript c# jquery jquery-plugins fancybox


【解决方案1】:

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

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

see this answer for more info

【讨论】:

  • 干杯拉斯,看起来如果我不是自己到那里,你会解决我的问题。非常感激。干杯,--李
  • 没有问题,很高兴为您提供帮助。我强烈建议您查看其他答案的链接 - 这篇文章很好读,而且 ASP.NET AJAX 文档非常有用。
  • 谢谢,我刚遇到这个问题,但我还不太熟悉 jQuery。这解决了它!非常感谢您发布此内容。
  • +1 这对我帮助很大。我也是 jQuery 的新手,并试图将示例组合在一起,而您的答案填补了我的空白。谢谢!
【解决方案2】:

可能是实例化代码被插入到回发后未运行的一段代码中?

【讨论】:

  • 有趣..fancybox 实例化代码在 aspx 页面上..我可能会尝试从后面的代码将其写入页面..
【解决方案3】:

这是描述的更新面板

这里..Rebinding events in jQuery after Ajax update (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
            });

   }
}

它成功了!

--李

【讨论】:

    【解决方案4】:

    这可能对其他人有帮助,但 FancyBox 将它的代码附加到

    元素......这一切都很好,但驻留在 asp.net
    元素之外。当我修改 FancyBox 以将其 dom 对象附加到
    元素时,我的回发问题消失了:
    $('body form:first').append( ... );
    

    【讨论】:

      【解决方案5】:

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

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

      我解决了替换这个的问题:

       <script>
              $(document).ready(function () {
      
                  $("a.small").fancybox();
      
              });
          </script>
      

      用这个:

        <script>
              function pageLoad(sender, args) {
                  $("a.small").fancybox();
              };
          </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 2013-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多