我有几个关于厚箱的问题。我正在开发一个站点,主页上需要几个厚箱才能在不同时间显示。当显示厚箱时,它将触发API调用并在厚箱中显示反馈。
我决定继续显示内联的thickbox,以减少Ajax调用量。看起来很简单,但有几个问题出现了。第一个是在显示thickbox时删除包含thickbox内容的div。 Thickbox用自定义HTML替换HTML以正确显示内容。这是可以的,但是当我希望我的AJAX响应更新厚箱内的某些东西并且我通过选择它的容器ID来设置访问厚箱时,这是有问题的。那不再可用了。当然,我可以为响应指定唯一标识符,但我只是希望给它们所有类“响应”并根据包含DIV的外部选择它们。 $("#login_lightbox > .response").html(ajax_response);
这有意义吗?
我的另一个担心是,可能有更好的方法来处理厚箱。我是否应该进行AJAX调用以获取厚箱内容,然后在加载时调用API?对我来说这似乎不是一个好选择,但是之前的开发人员已经设置了这种方式,所以我希望能得到一些意见。
答案 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&width=300" class="thickbox">Answer</a></p>
以便将内容加载到Thickbox中。
要回答您的问题,当我执行以下操作时,它的效果非常好。也许我误解了你的问题?
初始页面上的某个地方:
<p><a href="atb.php?height=200&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());
?>