所以我有一大块用 js 编写的代码,或多或少地检查滚动条相对于文档/窗口大小的位置。如果它在底部附近,它将触发函数调用。
一切都很好,直到我开始编写函数,该函数实际上将在当前显示的数据下加载额外的页面/数据。
以下是目前在加载额外数据的函数中编写的内容:
var appendData = function () {
_loading(true);
spinner.spin(spinnerTarget);
FC.WebAPI.RouteTemplates.GetTemplates({ "criteria": _searchTerm(), "pageNumber": dataGridViewModel.currentPage(), "pageSize": dataGridViewModel.pageSize(), "filter": Filter.toODataString(filterViewModel.selectedFilters()), "orderBy": _getSortODataString() }).execute(function (response) {
_data.concat(response.Results);
spinner.stop();
_loading(false);
if (_searchTerm().trim() != "") {
setTimeout(function () {
var terms = _searchTerm().split();
for (var i = 0; i < terms.length; i++) {
$('.routedetails span').highlight(terms[i]);
}
}, 200);
}
}, function (fail) {
spinner.stop();
_loading(false);
});
}
在实现无限滚动功能之前,它被用作一个简单的 Next 按钮,为了让所有内容都在同一页面上而不是加载新页面,我们添加了
_data.concat(response.Results);
每当调用该函数时,它似乎将滚动条跳到屏幕顶部,而不是或多或少地保持相同的位置。不知道为什么它有任何想法?