2012-06-19 74 views
2

所以我有一個用js編寫的代碼塊,或多或少地檢查滾動條相對於文檔/窗口大小的位置。如果它靠近底部,它將觸發一個函數調用。JS/Knockout無盡的滾動 - 滾動條跳轉到頁首

一切都很好,直到我開始編寫實際加載當前顯示數據下的額外頁面/數據的函數。

下面是在加載額外數據的功能至今寫:

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); 

每當函數被調用,它本身,它似乎跳滾動條到屏幕的頂部,而不是保持相同的位置,更多的還是減。不知道爲什麼它有任何想法?

回答

0

我遇到過這個問題一次,這是因爲有一個控件在屏幕的頂部有焦點。在加載頁面過程中,我在該控件上調用了$(element).blur(),問題消失了。