restablecer jquery asistente inteligente

Estoy utilizando asistente inteligente jquery Mi asistente se abre en un cuadro de diálogo cuando un usuario hace clic en un botón llamado "crear". Cuando el usuario vuelve a hacer clic en el botón, quiero que el asistente se reinicie e inicie uno nuevo, pero conserva su estado. Si lo reinicio, agrega los botones siguiente, anterior y finalizar nuevamente y desordena toda la interfaz de usuario del asistente. ¿Alguna idea de cómo puedo restablecer el asistente inteligente?

preguntado el 12 de junio de 12 a las 21:06

Si mi respuesta resolvió su problema (o cualquier otro), marque la respuesta haciendo clic en la marca de verificación. Así funciona Stack Overflow para ayudar a los futuros visitantes. -

3 Respuestas

El método público de reinicio del asistente está incluido en el último Smart Wizard 4, mira el ejemplo.

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

Llamar a esta función restablecerá el asistente al estado predeterminado inicial.

respondido 01 nov., 16:10

Según el cuadro de diálogo que esté utilizando, creo que lo que deberá hacer es lo siguiente:

  1. Cree una plantilla para su elemento de asistente que esté oculto
  2. Cuando abra el cuadro de diálogo (onOpen), clone el elemento y aplique el asistente inteligente
  3. Cuando se cierre el cuadro de diálogo, elimine el elemento que ha clonado.

Aquí hay una demostración usando colorbox:

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

Editar: dado que el violín ya no funciona debido al movimiento de bibliotecas desde que se creó, el código está a continuación:

 $("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
                });
            }
        });

respondido 30 mar '17, 14:03

También estoy haciendo lo mismo, pero no quiero que SmartWizard conserve la información, quiero que reinicie su estado, es decir, siempre debe mostrar la primera página cada vez que se hace clic en el botón (puedo forzar eso usando Goto pero tal vez otras variables de estado, por ejemplo, páginas completadas, etc.) ¿cómo puedo hacer que smartwizard olvide/restablezca su estado? - vivek jain

@vivekjain He actualizado la respuesta. Dado que el complemento smartwizard no tiene un evento/función de destrucción, podemos eliminarlo cuando ocultamos el cuadro de diálogo. - lúcuma

aunque el marcado que aparece en mi cuadro de diálogo es bastante grande, funcionará, lo único es que, ¿qué pasará con los identificadores de los elementos? ¿serán duplicados? En muchos lugares estoy usando $("#id") para acceder a un elemento, ¿se romperá ese código? - vivek jain

Debería estar bien. Asegúrese de que la plantilla NO tenga una identificación y cuando clone puede aplicar la identificación de esta manera: $('.template').clone().removeClass('template').attr('id', 'myid').appendTo('.inline')..... Violín actualizado: jsfiddle.net/lucuma/Kn2ud/5 - lúcuma

como dije, mi marcado es grande, no será práctico establecer la identificación de cada elemento de esta manera. - vivek jain

Esto parece funcionar para mí (en coffeescript, pero entiendes la idea).

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

La eliminación o retención de datos en el asistente depende de usted.

Respondido el 10 de enero de 16 a las 00:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.