2

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

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

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

4

1 回答 1

0

In order to open new Ajax content in an open Ajax ThickBox, its code must also contain the appropriate HTML (class="thickbox") to launch an Ajax ThickBox (see demo for example).

You may want to read & check the demos over at http://jquery.com/demo/thickbox/#sectionf-1

HTH

Edit:

Hey Tony, the above applies to new content links within a Thickbox, not to open a Thickbox. To go with the demo page above, the initial content contains a link:

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

so that content is loaded into the Thickbox.

To go with your question, when I do the following, it works pretty well. Maybe I misunderstood your question?

Somewhere on the initial Page:

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

Thickbox content (File '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>

File 'atbd.php':

<?php
echo date('Y-m-d H:i:s', time());
?>
于 2009-11-26T10:41:03.397 回答