如何在我的应用程序中正确使用thickbox?

时间:2009-11-25 20:30:11

标签: jquery thickbox

我有几个关于厚箱的问题。我正在开发一个站点,主页上需要几个厚箱才能在不同时间显示。当显示厚箱时,它将触发API调用并在厚箱中显示反馈。

我决定继续显示内联的thickbox,以减少Ajax调用量。看起来很简单,但有几个问题出现了。第一个是在显示thickbox时删除包含thickbox内容的div。 Thickbox用自定义HTML替换HTML以正确显示内容。这是可以的,但是当我希望我的AJAX响应更新厚箱内的某些东西并且我通过选择它的容器ID来设置访问厚箱时,这是有问题的。那不再可用了。当然,我可以为响应指定唯一标识符,但我只是希望给它们所有类“响应”并根据包含DIV的外部选择它们。 $("#login_lightbox > .response").html(ajax_response);这有意义吗?

我的另一个担心是,可能有更好的方法来处理厚箱。我是否应该进行AJAX调用以获取厚箱内容,然后在加载时调用API?对我来说这似乎不是一个好选择,但是之前的开发人员已经设置了这种方式,所以我希望能得到一些意见。

1 个答案:

答案 0 :(得分:0)

  

为了打开新的Ajax内容   一个开放的Ajax ThickBox,它的代码必须   还包含适当的HTML   (class =“thickbox”)启动Ajax   ThickBox(例如参见演示)。

您可能需要阅读&在http://jquery.com/demo/thickbox/#sectionf-1

检查演示

HTH

编辑:

嘿Tony,上面适用于Thickbox中的新内容链接,而不是打开Thickbox。要使用上面的演示页面,初始内容包含一个链接:

<p>What is jquery? <a href="newTBcontent.html?height=200&amp;width=300" class="thickbox">Answer</a></p>

以便将内容加载到Thickbox中。

要回答您的问题,当我执行以下操作时,它的效果非常好。也许我误解了你的问题?

初始页面上的某个地方:

<p><a href="atb.php?height=200&amp;width=300" class="thickbox">Open AJAX Thickbox</a></p>

加厚箱内容(文件'atb.php'):

<script language="javascript" type="text/javascript">
jQuery(document).ready( function()
{
    jQuery.ajax(
    {
        type: "GET",
        url: "atbd.php",
        success: function(rsp)
        {
            jQuery( ".response" ).html(rsp);
        }
    });
});
</script>
<div id="container">
    <div class="response">RSP 1</div>
    <div class="response">RSP 2</div>
    <div class="response">RSP 3</div>
    <div class="response">RSP 4</div>
</div>

档案'atbd.php':

<?php
echo date('Y-m-d H:i:s', time());
?>