我有一些关于厚纸箱的问题。我正在开发一个网站,该网站需要主页上的几个粗框在不同时间显示。显示thickbox时,它将触发API调用并在thickbox中显示反馈。

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

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

最佳答案

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


您可能想在http://jquery.com/demo/thickbox/#sectionf-1上阅读并查看演示。

高温超导

编辑:

嗨,托尼,以上内容适用于thickbox中的新内容链接,而不是打开thickbox。要与上面的演示页面一起使用,初始内容包含一个链接:

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


以便将内容加载到Thinbox中。

关于您的问题,当我执行以下操作时,它会很好地工作。也许我误会了你的问题?

在初始页面的某个位置:

<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());
?>

10-06 15:13