dijit.Tree установить путь и прокрутить до выбранного узла
На самом деле я застрял. Я пытаюсь выбрать узел в дереве додзё и сразу перейти к нему. Но я не понимаю, как это реализовать.
следующий код:
this.set("path", ["root", "folder", "file"]);
this.focusNode(this.selectedNode.id);
не работает
этот:
this.set("path", ["root", "folder", "file"]);
win.scrollIntoView(this.selectedNode.id);
работает! но только если папка (родительский лист) дерева уже открыта. И это не работает, если родительская папка закрыта.
Итак... Может ли кто-нибудь помочь мне?
PS Вот очень простой пример: http://jsfiddle.net/hjnx9/6/
Я нажимаю на кнопку и хочу выбрать какой-нибудь узел в дереве и перейти к нему. Сначала будет выбран только узел (но прокрутка не работает). Во второй раз узел будет выбран снова, и на этот раз будет работать прокрутка. Как это исправить???
PSS Я думаю, что проблема в том, что набор ("путь",...) открывает папку дерева не сразу (анимация занимает около 200 мс). Так может мне нужен какой-то обратный звонок?
1 ответ
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);
}
);