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

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

解决方案

可以使用以下代码:

//不使用一个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", "");

其他提示

我来到这个答案页面,并尝试了这里提出的解决方案。它不起作用。我使用了我的一个老把戏,几乎每次都奏效了。虽然这篇文章已经有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 无论如何都没有显示,所以没关系。

希望这对某人有帮助。

我发现自己的答案。我打开一个包含所有步骤的DIV,以及刚刚通过JavaScript决定显示哪些DIV。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top