因此,我为Kendo Grid进行了更改事件,以便在选中时滚动到所选行。一切都很好,除了,我遇到了一个JavaScript错误。Uncaught TypeError: Cannot read property 'top' of undefined这是实现此目的的JavaScript代码。

    function onGridChange(e) {
        var scrollContentOffset = this.element.find("tbody").offset().top;
        var selectContentOffset = this.select().offset().top;
        var distance = selectContentOffset - scrollContentOffset;

        //    animate our scroll
        this.element.find(".k-grid-content").animate({
            scrollTop: distance
        }, 400);

        var grid = $("#kendo-grid").data("kendoGrid");
        grid.clearSelection();
    }
我不明白一切正常。我可以抑制JavaScript错误吗?或者您认为我应该如何处理?
谢谢!

最佳答案

我发现了我的问题。
调用grid.clearSelection()会再次导致onGridChange()事件。

function onGridChange(e) {
    if (this.select().length > 0) {
            var scrollContentOffset = this.element.find("tbody").offset().top;
            var selectContentOffset = this.select().offset().top;
            var distance = selectContentOffset - scrollContentOffset;

            //    animate our scroll
            this.element.find(".k-grid-content").animate({
                scrollTop: distance
            }, 400);

            var grid = $("#kendo-grid").data("kendoGrid");
            grid.clearSelection();
        }
}

10-07 20:01
查看更多