teacher students pez juegos judo games dojo

students - No puedo crear dijits a través de dojo.NodeList.instantiate



dojo karate do (1)

Debe llamar al inicio en esos dijits después de que se crean instancias. dojo.query.instantiate no lo hace por usted, ya que solo crea los objetos.

En la parte inferior de su función onLoad, agregue estos:

dijit.byId(''divOuter'').startup(); dijit.byId(''divMiddle'').startup(); dijit.byId(''divRight'').startup();

Estoy intentando que dijits se procesen utilizando el método dojo.NodeList.instantiate , que toma los elementos HTML existentes y los convierte en dijits cuando el DOM se ha cargado.

La referencia de API para el método de instantiate se puede encontrar aquí .

El siguiente ejemplo, que llama al método de dojo.addOnLoad instantiate en el método dojo.addOnLoad , debe crear un BorderContainer con dos instancias de ContentPane , pero los DIV permanecen como comienzan y no se convierten en dijits:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Dijit Test</title> <style type="text/css"> @import "dojoroot/dijit/themes/tundra/tundra.css"; @import "dojoroot/dojo/resources/dojo.css"; </style> <script type="text/javascript" src="dojoroot/dojo/dojo.js" djConfig="parseOnLoad: true"></script> <script type="text/javascript"> dojo.require("dijit.layout.BorderContainer"); dojo.require("dijit.layout.ContentPane"); dojo.addOnLoad( function() { dojo.query("#divOuter").instantiate( dijit.layout.BorderContainer, { design : ''sidebar'', gutters : false } ); dojo.query("#divMiddle").instantiate( dijit.layout.ContentPane, { region : ''center'' } ); dojo.query("#divRight").instantiate( dijit.layout.ContentPane, { region : ''right'', splitter : true } ); } ); </script> </head> <body> <div id="divOuter" style="width:400px;height:300px"> <div id="divMiddle">Middle box</div> <div id="divRight">Right box</div> </div> </body> </html>

He intentado el código anterior tanto en Firefox 3.5 como en Internet Explorer 7 y ambos no pueden representar los dijits. Si especifico un atributo HTML estándar en un objeto de propiedad (como el atributo de style ), este cambio de estilo aparece correctamente, lo que indica que el objeto se está leyendo:

// The red border appears when using this example dojo.query("#divRight").instantiate( dijit.layout.ContentPane, { region : ''right'', splitter : true, style : ''border:1px solid red'' } );

El siguiente HTML (con dojoType y otros atributos de propiedad) funciona bien: BorderContainer y ContentPanes aparecen correctamente en ambos navegadores:

<div dojoType="dijit.layout.BorderContainer" design="sidebar" gutters="false" style="width:400px;height:300px"> <div dojoType="dijit.layout.ContentPane" region="center">Middle box</div> <div dojoType="dijit.layout.ContentPane" region="right" splitter="true" style="width:200px;">Right box</div> </div>

Por favor, ¿alguien puede decirme por qué el ejemplo de instantiate no funciona?

He realizado muchas búsquedas, pero parece que no puedo encontrar a nadie más con este problema, lo que puede significar que no estoy utilizando el método de instantiate correctamente.

Gracias.