是什么原因导致剑道无法读取属性' offsetTop' of null" js错误?

时间:2017-02-07 17:46:24

标签: javascript kendo-ui kendo-grid

我从一个带有Kendo Grid的页面得到以下Kendo js错误和堆栈跟踪,每天大约有一两次错误来自最终用户:

Message: Cannot read property 'offsetTop' of null
     

在offsetTop第28097行,第35栏(/source//kendo.all.js:28097)

    var itemHeight = $(element.children[0]).height();
    var itemIndex = Math.floor(scrollTop / itemHeight) || 0;
    var item = element.children[itemIndex] || element.lastChild;
    var forward = item.offsetTop < scrollTop;
    while (item) {
        if (forward) {
            if (item.offsetTop + itemHeight > scrollTop || !item.nextSibling) {
     

在_firstVisibleItem第28127行,第39栏   (/source//kendo.all.js:28127)

    if (!template) {
        return;
    }
    var visibleItem = this._firstVisibleItem();
    if (visibleItem) {
        this.header.html(template(visibleItem.group));
    }
     

在_renderHeader第27650行,第29栏(/source//kendo.all.js:27650)

            var that = this;
            clearTimeout(that._scrollId);
            that._scrollId = setTimeout(function () {
                that._renderHeader();
            }, 50);
        }, this);
    },

不清楚错误是否有任何影响,但任何错误都会令人不安,并在我们的错误日志中占用空间。我最好的猜测是,当用户离开页面时发生错误。也许有一种方法可以安全地处理网格而不会出现问题,尽管问题可能完全不同。

我使用2017年1月发布的最新剑道版本,但我也在以前的版本中看过它。

有什么方法可以消除这个错误,还是可以安全地忽略它?

1 个答案:

答案 0 :(得分:1)

发生此错误可能是因为当您的代码运行并使用网格的某些功能时,网格未完全加载到DOM中。

要找到原因,您需要做的是进一步向下调用堆栈,直到代码中首次出现函数,而不是Kendo's。

我发生了类似的错误。我使用angular2并尝试在视图准备好之前使用Kendo Scheduler的功能。