我无法让focusNode()或expandNode()得到工作。我也试过切换回dojo 1.32甚至1.3,没有差别1.4。我用firebug调试,节点是一个有效的树节点,没有错误发生,但节点不会聚焦。非常感谢帮助!
<head>
<script type="text/javascript">
dojo.declare("itcTree",[dijit.Tree], {
focusNodeX : function(/* string */ id) {
var node=this._itemNodesMap[id];
this.focusNode(node);
}
});
</script>
</head>
<body class="tundra">
<div dojoType="dojo.data.ItemFileReadStore" jsId="continentStore" url="countries.json">
</div>
<div dojoType="dijit.tree.ForestStoreModel" jsId="continentModel" store="continentStore"
query="{type:'continent'}" rootId="continentRoot" rootLabel="Continents"
childrenAttrs="children">
</div>
<div dojoType="itcTree" id="mytree" model="continentModel" openOnClick="true">
<script type="dojo/method" event="onClick" args="item">
dijit.byId('mytree').focusNodeX('AF');
</script>
</div>
<p>
<button onclick="dijit.byId('mytree').focusNode('DE');">klick</button>
</p>
</body>
答案 0 :(得分:1)
focusNode()将dijit.TreeNode作为参数,而不是文本字符串。
可能你想使用Tree.attr(“selectedItem”,“DE”)。
答案 1 :(得分:1)
您必须按以下方式使用set方法:
tree.set('path', ['2', '1', '7']);
假设2,1,7是给定节点的路径。我必须提到这些是数据存储项的标识。
访问此处获取更多信息: http://dojotoolkit.org/reference-guide/1.7/dijit/Tree-examples.html
答案 2 :(得分:0)
是的,我发现相同,你需要使用node [0]
var itemNode = tree._itemNodesMap["some_id"];
tree.focusNode(itemNode[0]);
问题是之前选择的节点继续关注两个。
关于这一点的任何想法。