实际上我被困住了。我正在尝试在道场树中选择节点并立即滚动到它。但我不明白如何实现这一点。
下一个代码:
this.set("path", ["root", "folder", "file"]);
this.focusNode(this.selectedNode.id);
不起作用
这个:
this.set("path", ["root", "folder", "file"]);
win.scrollIntoView(this.selectedNode.id);
有效!但前提是树的文件夹(父叶)已经打开。如果父文件夹关闭,它不起作用。
所以。。。有人可以帮助我吗?
附言这是一个非常简单的例子:http://jsfiddle.net/hjnx9/6/
我单击该按钮,想选择树中的某个节点并滚动到它。第一次,节点将被选中(但滚动不起作用)。第二次将再次选择节点,这次滚动将起作用。如何解决???
附言我认为问题是set("path",...)不会立即打开树的文件夹(动画大约需要200毫秒)。那么我可能需要某种回调吗?
set("paths", ...)
返回一个承诺,因此,您的问题可以通过以下方式解决:
//select node
_Tree.set("path", ["root", "folder49", "file25_folder49"]).then(
function(path) {
// executes when set("path", ..) is complete
var item = _Tree.model.store.data[2526];
_Tree.onClick(item);
}
);