Javascript devExtreme TreeView展开、滚动至并聚焦

Javascript devExtreme TreeView展开、滚动至并聚焦,javascript,jquery,treeview,devextreme,Javascript,Jquery,Treeview,Devextreme,是否可以展开树状视图,滚动到一个节点并将其集中在一个功能上 $("#buttonTest").dxButton({ text: "Test", onClick: function () { editTreeView.expandItem(editTreeView.element().find(".dx-treeview-item")[0]) var currentNode = $("#editTreeView").find("[data

是否可以展开树状视图,滚动到一个节点并将其集中在一个功能上

    $("#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");

    }
});
在本例中,树在第一次单击时打开,在第二次单击时滚动/聚焦。但我希望只需点击一下:)


谢谢。

似乎存在与可滚动高度计算相关的问题。您可以使用下面的
setTimeout
功能修复它:

$("#buttonTest").dxButton({
    text: "Test",
    onClick: function () {
        //...
        setTimeout(function() {
            scrollable.scrollToElement(currentNode);
        }, 300); 
    }
});
这个解决方案看起来像是一个黑客,但仍然存在


我也创建了。

似乎存在与可滚动高度计算相关的问题。您可以使用下面的
setTimeout
功能修复它:

$("#buttonTest").dxButton({
    text: "Test",
    onClick: function () {
        //...
        setTimeout(function() {
            scrollable.scrollToElement(currentNode);
        }, 300); 
    }
});
这个解决方案看起来像是一个黑客,但仍然存在


我还创建了。

在Angular for scrollTo中可以执行以下操作:

 onItemClick(e) {
    setTimeout(() => {
        e.component._scrollableContainer.scrollToElement(e.itemElement.parentElement.lastChild);
    }, 400);

在scrollTo中,可以执行以下操作:

 onItemClick(e) {
    setTimeout(() => {
        e.component._scrollableContainer.scrollToElement(e.itemElement.parentElement.lastChild);
    }, 400);