Сбросить JQuery SmartWizard

Я использую jquery smartwizard Мой мастер открывается в диалоговом окне, когда пользователь нажимает кнопку "Создать". Когда пользователь снова нажимает кнопку, я хочу, чтобы мастер сбросил настройки и запустил новый мастер, но он сохраняет свое состояние. Если я повторно инициализирую его, то он снова добавляет кнопки "Следующая", "Предыдущая" и "Готово" и портит весь интерфейс мастера. Любые идеи, как я могу сбросить смарт-мастера?

3 ответа

Публичный метод сброса мастера включен в последнюю версию Smart Wizard 4, см. Пример.

$('#smartwizard').smartWizard("reset"); 

Вызов этой функции вернет мастер в исходное состояние по умолчанию.

В зависимости от того, какой диалог вы используете, я думаю, что вам нужно будет сделать следующее:

  1. Создайте шаблон для скрытого элемента мастера
  2. Когда вы откроете диалоговое окно (onOpen), клонируйте элемент и примените умный мастер
  3. Когда диалоговое окно закрыто, удалите клонированный элемент.

Вот демонстрация с использованием colorbox:

http://jsfiddle.net/lucuma/Kn2ud/4/

Редактировать: поскольку скрипта больше не работает из-за перемещения библиотек с момента ее создания, код приведен ниже:

 $("button").colorbox({
            inline: true,
            open: true,
            width: "1000px",
            href: '.inline',
            onClosed: function() {
                $('.inline .swMain').remove();
            },
            onOpen: function() {
                $('.template').clone().removeClass('template').appendTo('.inline').smartWizard({
                    transitionEffect: 'slideleft',
                    onFinish: onFinishCallback
                });
            }
        });

Кажется, это работает для меня (в coffeescript, но вы поняли идею).

numSteps = 5
wizardDiv.smartWizard('goToStep', 1)
# disable all the following steps
for i in [2..numSteps]
    wizardDiv.smartWizard('disableStep', i)

Очистка или сохранение любых данных в самом мастере зависит от вас.

Другие вопросы по тегам