4

我正在尝试使用厚盒做一个向导,第一次打开它时效果很好。当我单击下一步时,我想关闭我打开的 div 并在thickbox 中打开一个新的,但它是如何完成的?我已经尝试了以下代码,但它只是关闭了厚盒并且不会再次打开它:

tb_show("", "#TB_inline?height=280&width=620&inlineId=divStart", "");
tb_remove();
tb_show("", "#TB_inline?height=280&width=620&inlineId=divContinue", "");
4

3 回答 3

5

您可以使用以下代码:

//不要使用 tb_remove() 函数

$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show("", "#TB_inline?height=280&width=620&inlineId=divContinue", "");

如果您使用 iframe 加载内容:

var p = parent;
p.$("#TB_window").remove();
p.$("body").append("<div id='TB_window'></div>");
p.tb_show("", "#TB_inline?height=280&width=620&inlineId=divContinue", "");
于 2009-07-11T05:22:29.683 回答
2

我来到这个答案页面,并尝试了这里提出的解决方案。它不起作用。我使用了我的一个老把戏,几乎每次都奏效了。尽管这篇文章已有 3 年多的历史,但我还是想分享其中的窍门。诀窍是使用 window.setTimeout 来延迟对下一个 tb_show() 的调用。

window.setTimeout(function(){
    tb_show("", "#TB_inline?height=300&width=300&inlineId=confirmDiv&modal=true");
    $("#TB_window").css({'border':'0px', 'background':'none'});
    },300); 

另请注意我使用的另外两个技巧:

  1. 我想显示一个模态弹出窗口。HTML 位于 ID 为“confirmDiv”的 div 中。但它显示了带有标题和填充的通常的厚框。所以第二行从 TB_Window 中移除了边框和背景颜色,它只显示了弹出的 HTML。

  2. 我还使用了 300 像素的一般高度宽度,尽管我的弹出窗口只有 250 像素。即使内容稍大一点,这也会阻止滚动条。TB_Window 无论如何都没有显示,所以没关系。

希望这可以帮助某人。

于 2013-01-10T13:21:12.443 回答
0

我自己找到了答案。我打开了一个包含所有步骤的 div,然后通过 javascript 决定要显示什么 div。

于 2009-03-24T09:52:38.943 回答