因此,我为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();
}
}