题
我正在尝试使用厚盒做一种向导,第一次打开它时效果很好。当我单击“下一步”时,我想关闭已打开的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);
另请注意我使用的另外两个技巧:
我想显示一个模式弹出窗口。HTML 位于 ID 为“confirmDiv”的 div 中。但它显示的是通常的带有标题和填充的厚盒子。因此,第二行从 TB_Window 中删除边框和背景颜色,仅显示弹出 HTML。
我还使用了 300 像素的常规高度宽度,尽管我的弹出窗口只有 250 像素。即使内容稍大一点,这也会阻止滚动条。TB_Window 无论如何都没有显示,所以没关系。
希望这对某人有帮助。
我发现自己的答案。我打开一个包含所有步骤的DIV,以及刚刚通过JavaScript决定显示哪些DIV。
不隶属于 StackOverflow