Fechar thickbox e abri-lo novamente
-
21-08-2019 - |
Pergunta
Eu estou tentando fazer uma espécie de assistente usando thickbox, e ele funciona muito bem quando abri-lo pela primeira vez. Quando clico seguinte eu gostaria de fechar a div eu abri e abrir um novo em thickbox, mas como isso é feito? Eu tentei o seguinte código, mas ele simplesmente fecha o thickbox e não abri-lo novamente:
tb_show("", "#TB_inline?height=280&width=620&inlineId=divStart", "");
tb_remove();
tb_show("", "#TB_inline?height=280&width=620&inlineId=divContinue", "");
Solução
Você pode usar este código:
// não faça uso tb_remove () function
$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show("", "#TB_inline?height=280&width=620&inlineId=divContinue", "");
Se você usar iframe para carregar o conteúdo:
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", "");
Outras dicas
Eu vim para esta página resposta, e tentou a solução aqui proposta. Não funcionou. Eu usei um dos meus velhos truques, e como quase todas as vezes, funcionou. Embora este post é mais de 3 anos de idade, eu queria compartilhar o truque. O truque é usar window.setTimeout para atrasar a chamada para a próxima 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);
Observe também dois outros truques que eu usei:
-
Eu queria mostrar um modal popup.The HTML estava em um div com id "confirmDiv". Mas foi mostrando o thickbox de costume, com título e estofamento. Assim, a segunda linha remove a cor da borda e fundo de TB_Window, que mostra apenas o HTML pop-up.
-
Eu também usei uma largura altura geral do 300px, embora o meu pop-up foi de apenas 250 pixels. Isso vai evitar que as barras de rolagem, mesmo se o conteúdo é um pouco maior. O TB_Window não está mostrando qualquer maneira, por isso não importa.
Espero que isso ajude alguém.
Eu encontrei a resposta sozinho. Abri uma div contendo todos os passos, ea apenas através de javascript decidiu o div para mostrar.