Сбросить JQuery SmartWizard
Я использую jquery smartwizard Мой мастер открывается в диалоговом окне, когда пользователь нажимает кнопку "Создать". Когда пользователь снова нажимает кнопку, я хочу, чтобы мастер сбросил настройки и запустил новый мастер, но он сохраняет свое состояние. Если я повторно инициализирую его, то он снова добавляет кнопки "Следующая", "Предыдущая" и "Готово" и портит весь интерфейс мастера. Любые идеи, как я могу сбросить смарт-мастера?
3 ответа
Публичный метод сброса мастера включен в последнюю версию Smart Wizard 4, см. Пример.
$('#smartwizard').smartWizard("reset");
Вызов этой функции вернет мастер в исходное состояние по умолчанию.
В зависимости от того, какой диалог вы используете, я думаю, что вам нужно будет сделать следующее:
- Создайте шаблон для скрытого элемента мастера
- Когда вы откроете диалоговое окно (onOpen), клонируйте элемент и примените умный мастер
- Когда диалоговое окно закрыто, удалите клонированный элемент.
Вот демонстрация с использованием 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)
Очистка или сохранение любых данных в самом мастере зависит от вас.