student - dojo taekwondo
cómo desactivar una sola pestaña en tabcontainer dojo (7)
Puede anular su CSS predeterminado para que la barra de pestañas sea invisible.
Quiero desactivar una sola pestaña en tabcontainer de dojo.
No puede hacerlo directamente ya que esta no es una función del contenedor de la pestaña DOJO. Ha habido un error en contra de DOJO, abierto durante aproximadamente 3 años, para agregar la función: http://bugs.dojotoolkit.org/ticket/5601
Ese defecto también tiene una posible solución alternativa.
dijit.byId (''tab''). controlButton.domNode.disabled = true
Aquí está mi solución para este problema:
dojo.style(dijit.byId("tabID").controlButton.domNode,{display:"none"});
y:
dojo.style(dijit.byId("tabID").controlButton.domNode,{display:"inline-block"});
Por alguna razón, alterar la propiedad deshabilitada o llamar a setDisabled no me sirve de nada.
dojo.attr(dijit.byId(''tab''), "disabled", true);
dijit.byId(''tab'').onClick = function () { };
Puede desactivar las pestañas configurando la propiedad deshabilitada del panel: Fuente: https://dojotoolkit.org/reference-guide/1.10/dojo/dom-style.html
pane.set("disabled", true);
Ejemplo:
<div data-dojo-type="dijit/layout/TabContainer" style="width: width: 350px; height: 200px">
<div data-dojo-type="dijit/layout/ContentPane" title="My first tab" data- dojo-props="selected:true">
Lorem ipsum and all around...
</div>
<div data-dojo-type="dijit/layout/ContentPane" id="second" title="My second tab">
Lorem ipsum and all around - second...
</div>
<div data-dojo-type="dijit/layout/ContentPane" title="My last tab" data- dojo-props="closable:true">
Lorem ipsum and all around - last...
</div>
</div>
<script type="dojo/require">
registry: "dijit/registry"
</script>
<button type=button onclick="registry.byId(''second'').set(''disabled'', !registry.byId(''second'').get(''disabled''));">
toggle tab #2 disabled
</button>
El único problema aquí es que no es visible para el usuario, no pueden hacer clic en él. Puede estos selectores CSS adicionales:
.dijitTab.dijitDisabled {
cursor: not-allowed !important;
}
.dijitTab.dijitDisabled > .tabLabel{
cursor: not-allowed !important;
}
Respondí esta pregunta en otro hilo. Básicamente implica involucrar a jQuery. Funciona muy bien para mi Tengo todas las pestañas creadas estáticamente (a diferencia de programáticamente) y puedo manipular si se muestran u ocultan con la ayuda de jQuery. Todo el código de todo está en mi publicación aquí:
¿Cómo puedo mostrar y ocultar dinámicamente un TabContainer completo usando DOJO?