2

したがって、ドキュメント/ウィンドウサイズに対するスクロールバーの位置を多かれ少なかれチェックする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);
    });
}

これは、エンドレス スクロール機能を実装する前は単純な [次へ] ボタンとして使用されていました。新しいページをロードするのではなく、すべてを同じページに保持するために、

_data.concat(response.Results);

関数が呼び出されるたびに、多かれ少なかれ同じ位置を維持するのではなく、スクロールバーを画面の上部にジャンプするように見えます。なぜそれがアイデアなのかわかりませんか?

4

1 に答える 1

0

この問題に一度遭遇しましたが、それは画面の上部にフォーカスのあるコントロールがあったためです。ページの読み込みプロセス中にそのコントロールで $(element).blur() を呼び出すと、問題はなくなりました。

于 2014-06-11T15:10:02.647 に答える