Debe añadir/eliminar la clase "ui-estado desactivado" a cada elemento de cabecera (es decir, "<h3> ") quieres deshabilitar/habilitar. A continuación, utilice:
$("#accordion").on("accordionbeforeactivate", function(){
return ! arguments[1].newHeader.hasClass("ui-state-disabled");
})
para añadir/quitar una clase dyanamically, utilice:
$("selector").addClass("ui-state-disabled");
$("selector").removeClass("ui-state-disabled");
Se puede añadir un atributo meaningul "id" a cada elemento de cabecera para simplificar la parte "selector". Por ejemplo, "paso-1", "paso-2", "paso-n" para cada paso que el usuario debe recorrer a lo largo del flujo de trabajo.
Puede intentar lo siguiente si está seguro acerca de la posición de la lengüeta para ser desactivar tiene:
// Disable the first tab
$("#accordion > h3:first-child").addClass("ui-state-disabled");
// Make sure the fourth tab is enabled
$($("#accordion > h3")[3]).removeClass("ui-state-disabled");
También tenga en cuenta que el uso de "ui-estado desactivado" en realidad es significativa porque va a representar el encabezado gris (o lo que sea que su tema haga que parezcan cosas deshabilitadas).
Otra nota, si la pestaña que desactiva dinámicamente está actualmente activa, no hará nada especial (es decir, no colapsará ni activará otra pestaña). Puede agregar lógica extra para activar una pestaña predeterminada o hacer cualquier otra cosa.
Es una lástima que el usuario no puede desactivar que de antemano ... –
un usuario puede desactivar absolutamente tal cosa mediante el uso de algo así como Greasemonkey para modificar el código JavaScript para el sitio. – artlung
por supuesto, y con la consola js uno puede jugar, cambiar el dom, ejecutar código js y así sucesivamente ... ¿Tengo que preocuparme por esto cuando quiero una buena representación de un acordeón? –