代码之家  ›  专栏  ›  技术社区  ›  user244394

Thickbox内联问题

  •  2
  • user244394  · 技术社区  · 14 年前

    我正在尝试使用thickbox创建一个包含隐藏内容的模式窗口 它可以很好地打开窗口,不确定为什么它不显示id=“hiddencontent”中的内容。

    我将按照inline示例中的建议执行以下操作 http://jquery.com/demo/thickbox/# -谢谢

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="thickbox.js"></script>
    
    <link rel="stylesheet" href="thickbox.css" type="text/css" media="screen" />
    </head>
    
    <body>
    <a href="#TB_inline?height=155&width=300&inlineId=hiddenContent" class="thickbox">Show Content</a> 
    
    <div id="hiddenContent" style="display: none">inline content comes here</div> 
    </body>
    </html>
    
    4 回复  |  直到 14 年前
        1
  •  2
  •   subosito    14 年前

    似乎你没有css文件,你可以在 http://jquery.com/demo/thickbox/#sectiona-3 到您的页面(或另存为style.css文件)。

    --编辑-- 是的,对不起,没有注意到css已经加载:(

    顺便说一下,刚刚找到解决方案,尝试在hiddenContent div中添加p标记:

    <div id="hiddenContent" style="display: none"><p>inline content comes here</p></div> 
    

    希望有帮助;)

        2
  •  1
  •   Flexo - Save the data dump sunny moon    13 年前

    这是厚盒子里的虫子。以下是修复方法:

    内部thickbox.js

    在第221行或其附近,您应该看到这行代码:

    $("#TB_ajaxContent").append($('#'+params['inlineId']).children());
    

    更改为:

    $("#TB_ajaxContent").html($('#'+params['inlineId']).html())
    

    然后,在223号线上或附近,你会看到这条线:

    $('#'+params['inlineId']).append($("#TB_ajaxContent").children());
    

    通过在该行前面添加两个斜杠来禁用该行,如下所示:

    //$('#'+params['inlineId']).append($("#TB_ajaxContent").children());
    

    说明:

    当thickbox将隐藏div中的内容复制到thickbox容器中时,它会复制all.children()元素。如果隐藏div中只有文本,则没有子元素,因为文本本身不是子元素。这就是为什么用 <p> 标记将起作用,因为现在有一个子 <p> 标签)。

    所以如果你只想在隐藏的div中使用 .html() 相反,将获取隐藏div中的所有内容。禁用的第二行将阻止thickbox在thickbox关闭时尝试将内容复制回隐藏div,这将导致子标记中的任何内容在隐藏div中重复。

        3
  •  0
  •   Diosney    12 年前

    不需要编辑 .js 文件,解决方案相当简单。

    也许过一会儿:)但我克服了这个问题,只改变了 ? 字符输入 #TB_inline? 通过 &

    问题在内部 parseQuery tickbox函数,它解析匹配对,但当查询有一个double ? 就像这个案子。

    更新 :在某些情况下 <p> 也需要修复;)

    希望有帮助。

        4
  •  0
  •   Abhishek    10 年前

    函数tb_position()需要更新。

    这种情况

    如果(!(jQuery.browser.msie&jQuery.browser.version<7)

    是错误的原因。

    jQuery不再支持jQuery.browser。在这种情况下,为了检测IE6,将上述条件改为

    如果(!(/\bMSIE 6/.test(navigator.userAgent)))

    推荐文章