2017-01-03 2 views
0

Можно ли развернуть древовидную структуру, прокрутить до узла и сфокусировать его на одной функции?devExtreme TreeView Expand, ScrollTo и Focus

$("#buttonTest").dxButton({ 
    text: "Test", 
    onClick: function() { 

     editTreeView.expandItem(editTreeView.element().find(".dx-treeview-item")[0]) 

     var currentNode = $("#editTreeView").find("[data-item-id=" + 80 + "]"); 
     var scrollable = $("#editTreeView").find(".dx-scrollable").dxScrollable("instance"); 

     scrollable.scrollToElement(currentNode); 

     $("#editTreeView").find(".dx-treeview-node").removeClass("dx-state-focused"); 

     var currentNode = $("#editTreeView").find("[data-item-id=" + 80 + "]"); 
     currentNode.focus().addClass("dx-state-focused"); 

    } 
}); 

В этом примере дерево открывается при первом щелчке и прокручивается/фокусируется на втором щелчке. Но я хочу это одним щелчком :)

Спасибо.

ответ

2

Похоже, что существует проблема, связанная с вычислением прокручиваемой высоты. Вы можете это исправить с помощью функции setTimeout, как показано ниже:

$("#buttonTest").dxButton({ 
    text: "Test", 
    onClick: function() { 
     //... 
     setTimeout(function() { 
      scrollable.scrollToElement(currentNode); 
     }, 300); 
    } 
}); 

Это решение выглядит как взломать, но все же))

Я создал fiddle а.