2011-10-25 10 views
6

¿Hay alguna manera en Dojo de encontrar todos los descendientes de widgets en un elemento DOM? Utilicé el ejemplo a continuación, solo se enumerarán los elementos secundarios del elemento, en este caso, los widgets que son elementos secundarios del documento, pero no todos los descendientes o widgets anidados. Espero que eso esté claro.¿Hay alguna forma en Dojo para encontrar todos los descendientes de widgets en un elemento DOM?

var widgets = dijit.findWidgets(dojo.doc); 
dojo.forEach(widgets, function(w) { 
    console.log(w); 
}); 

tan sólo pudiera escribir mi propia función recursiva pero quiero asegurarme de que no estoy perdiendo un método Dojo que ya hace esto.

Muchas gracias

+0

Para que quede claro, que desea una función para obtener todos los widgets de debajo de un DOMNode, incluidos los widgets de los cuales están anidados en otros widgets? – BuffaloBuffalo

+0

@ screenm0nkey, ¿alguna vez encontró una solución para esto? Necesito esta funcionalidad exacta también. – carmenism

Respuesta

9

Hmm, dijit.findWidgets(parentWidget.domNode)?

Editar Ah, ahora I nee findWidgets no busca recursivamente.

he comprobado el código fuente dijit.findWidgets y todo lo que hace es comprobar si hay nodos con un atributo widgetid que están representados en el registro dijit. La versión siguiente, se utiliza dojo.query hacer esta misma búsqueda de forma recursiva:

function findEvenTheNestedWidgets(innitialNode){ 
    return dojo.query("[widgetid]", innitialNode) 
    .map(dijit.byNode) 
    .filter(function(wid){ return wid;}) //filter invalid widget ids that yielded undefined 
} 
+0

Hey missingno. ¿Fue eso una suposición? No creo que haya un método dojo.findWidgets. – screenm0nkey

+0

oops, quise decir dijit ... Lo importante es que puede elegir domNode del widget para comenzar la búsqueda en lugar de buscar todos los widgets en el documento. – hugomg

+0

Pero eso solo me da a los niños directamente debajo de ese domNode, no los widgets anidados en el interior de los niños y los hijos de los niños, etc. – screenm0nkey

Cuestiones relacionadas