关闭厚箱并再次打开它

时间:2009-03-24 09:07:40

标签: thickbox

我正在尝试使用thickbox来执行某种向导,并且在第一次打开它时它可以正常工作。当我点击下一步时,我想关闭我打开的div并在thickbox中打开一个新的,但它是如何完成的?我尝试了以下代码,但它只是关闭了厚箱而不再打开它:

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

3 个答案:

答案 0 :(得分: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", "");

答案 1 :(得分: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中删除边框和背景颜色,TB_Window仅显示弹出HTML。

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

  3. 希望这有助于某人。

答案 2 :(得分:0)

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