【问题标题】:JQuery Facebox Plugin : Get it inside the form tagJQuery Facebox 插件:在表单标签中获取它
【发布时间】:2010-09-14 19:20:15
【问题描述】:

我想为 JQuery 使用 Facebox 插件,但在让它按我想要的方式运行时遇到了一些问题。包含 facebox 内容的 div 是在标签之外创建的,因此即使我正在加载一些 Web 控件,它们都不会返回到服务器。

有没有人处理过这个问题可以给我一些指点?

【问题讨论】:

  • 没问题,给你! *anObject *anotherObject 对不起,我知道这很蹩脚,但还是要开一些玩笑。
  • 来吧,伙计,你必须链接到 xkcd。天哪 ;)

标签: c# asp.net jquery facebox


【解决方案1】:

在 facebox.js 周围戳了一下,我在函数 init(settings) 中遇到了这一行...

$('body').append($.facebox.settings.faceboxHtml)

我把它改成了...

$('#aspnetForm').append($.facebox.settings.faceboxHtml)

它在表单标签中加载,尚不确定是否有任何副作用

【讨论】:

    【解决方案2】:

    您可以使用此代码注册 PostBack 事件:

    btn.OnClientClick = string.Format("{0}; $.facebox.close();",ClientScript.GetPostBackEventReference(btn, null));
    

    这将使按钮触发回发。

    【讨论】:

      【解决方案3】:

      即使在 : $('#aspnetForm').append($.facebox.settings.faceboxHtml)

      change 我发现它有问题。当您使用 firebug 查看页面源代码时,您会看到分配为 facebox div 的 div 中的所有 html 都加倍(重复)。

      因此,所有那些具有假定唯一 ID 的控件都在页面上加倍,这在回发时并不好,我决定将 asp.net 网络控件放在 Facebook 中不是一个好主意。

      【讨论】:

        【解决方案4】:

        我修改了 facbox.js 来做到这一点。也许有更好的解决方案,但这就像一个魅力

        我做了什么:

        1. 在 facbox.js 顶部的 '(function($)' 之前添加两行
        var willremove = '';
        var willremovehtml = '';
        
        1. 找到“reveal: function(data, klass) {”并在函数的第一行之前添加这一行。
        willremove = data.attr('id')
        willremovehtml = $('#'+willremove).html()
        $('#'+willremove).html('')
        1. 找到“close: function() {”并使其如下所示。
        关闭:函数(){
        $(document).trigger('close.facebox')
        $('#'+willremove).html(willremovehtml)
        willremovehtml = ''
        将删除 = ''
        返回假
        }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-08
          • 1970-01-01
          • 2012-05-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多