2011-09-01 12 views
14

He hecho algunas búsquedas y he obtenido muchos resultados mixtos para usar Dojo para alternar divs vs vs hidden.Dojo Alternar Ocultar y Mostrar Divisiones

  • Algunos utilizan dojo.style la que parece que podría haber sido reemplazado por dojo.fx
  • Algunos utilizan dijit pero así no puede acceder a un nodo DOM.
  • Algunos hacen uso de show() y hide()
  • Algunos cambian la CSS

Me parece que no puede conseguir cualquiera de ellos para trabajar.

¿Puede alguien señalarme hacia un walkthru actualizado en esto.


resuelto

ha usado una combinación de los siguientes ...

dojo.addOnLoad(function() { 
     dojo.style(dojo.byId('myDiv'), "display", "none"); 
}); 

y para cambiarla

function toggleDivs(){ 
    if( dojo.style(dojo.byId('myDiv'), "display") == "none"){ 
     dojo.style(dojo.byId('myDiv'), "display", "block"); 
     dojo.style(dojo.byId('myDiv2'), "display", "none"); 
    } else { 
     dojo.style(dojo.byId('myDiv'), "display", "none"); 
     dojo.style(dojo.byId('myDiv2'), "display", "block"); 
    } 
} 
+2

Una forma algo más simple de lograr esto podría ser crear una clase css con "display: none" y llamar a dojo.toggleClass para hacer alternar automáticamente. –

Respuesta

6

Por qué no usas dojo.fx.Toggler?

var toggler = new dojo.fx.Toggler({ 

     node: "basicNode" 

    }); 

    dojo.connect(dijit.byId("showButton"), "onClick", toggler, "show"); 
    dojo.connect(dijit.byId("hideButton"), "onClick", toggler, "hide"); 
}` 

De dojo reference-guide:

El Toggler.show funciones() y Toggler.hide() ambos devuelven el objeto de animación para la animación en el juego. Este objeto se puede usar para detener, pausar, establecer la 'ubicación' actual de la animación y obtener el estado de la animación.

4

Como referencia, en dojo 1.7 y superior la definición es ligeramente diferente (debido al cargador AMD). Vea el tercer ejemplo en dojo reference guide.

El código es básicamente:

require(["dojo/fx/Toggler", "dojo/fx", "dojo/dom", "dojo/on", "dojo/domReady!"], 
function(Toggler, coreFx, dom, on){ 
    var toggler = new Toggler({ 
    node: "toggle-id", 
    showFunc: coreFx.wipeIn, 
    hideFunc: coreFx.wipeOut 
    }); 
    on(dom.byId("hideButton"), "click", function(e){ 
    toggler.hide(); 
    }); 
    on(dom.byId("showButton"), "click", function(e){ 
    toggler.show(); 
    }); 
}); 

donde showFunc y son hideFunc funciones de animación personalizados que no sólo mostrar/ocultar nodo sino también expandir/contraer su estatura. Tenga en cuenta, que si mostrar/ocultar un dijit el widget Identificación de palanca debe ser el padre de la Identificación del widget de, por ejemplo:

<div id="toggle-id"><div id="textarea-id"></div></div> 

donde textarea-id es el ID pasa como srcNodeRef al crear un widget dijit, como ComboBox o TextArea , con el operador new (consulte "alternar-id" en el ejemplo de código anterior).