Закройте толстый ящик и откройте его снова.

StackOverflow https://stackoverflow.com/questions/676609

  •  21-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь создать что-то вроде мастера с использованием толстого ящика, и он отлично работает при первом открытии.Когда я нажимаю «Далее», я хотел бы закрыть открытый мной 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 находился в блоке div с идентификатором «confirmDiv».Но там было обычное толстое поле с заголовком и отступами.Таким образом, вторая строка удаляет цвет границы и фона из TB_Window, который показывает только всплывающий HTML.

  2. Я также использовал общую высоту и ширину 300 пикселей, хотя у меня всплывающее окно было всего 250 пикселей.Это предотвратит появление полос прокрутки, даже если содержимое немного больше.TB_Window все равно не отображается, так что это не имеет значения.

Надеюсь, это кому-нибудь поможет.

Я нашел ответ сам.Я открыл div, содержащий все шаги, и только через javascript решил, какой div показать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top