I have a tree as outlined below that executes an ajax operation each time a node is selected. When the page loads I use javascript to expand the entire tree. The first time I select one of the nodes it will collapse itself, but subsequent calls work fine. My initial guess is that maybe the way in which I expand the nodes via javascript leaves the tree event listeners in an unexpected state. Any suggestions would be greatly appreciated.
<script type="text/javascript"> //<![CDATA[ { $(window).onload = function(){ expandAll(); }; } function expandAll(){ var tree = window['Richfaces_Tree_createOrderForm_question_tree']; var childs = tree.childs; expand(childs); } function expand(childs) { for (var i = 0; i < childs.length; i++) { var element = childs; var cc = element.childs; if (cc!=null && cc.length != 0) { if (element.isCollapsed){ //element.eventCollapsionClick(); element.expand(); expand(cc); } } } } //]]> </script> <rich:tree id="question_tree" value="#{questionManagerModel.directedQuestionNode}" var="item" nodeFace="#{item.model.class.simpleName}" switchType="client"> <rich:treeNode type="DatabaseQuestionImpl" icon="/img/blue_cloud.png"> <h:outputText value="Q - #{item.model.questionText}"> </h:outputText> <a4j:support action="#{questionManager.setCurrentNode(item)}" event="onselected"> </a4j:support> </rich:treeNode>