Knockout.jsを使用してforeachバインディングを使用してアイテムのリストを作成します。foreachバインディングのすべてのアイテムがレンダリングされたら、「focused」と呼ばれる特定のクラスのアイテムを検索し、ウィンドウをそのアイテムまでスクロールしたいと思います。
アイテムを追加または削除しないため、ページの読み込み時に1回だけ発生します。
どうすればいいですか?
Knockout.jsを使用してforeachバインディングを使用してアイテムのリストを作成します。foreachバインディングのすべてのアイテムがレンダリングされたら、「focused」と呼ばれる特定のクラスのアイテムを検索し、ウィンドウをそのアイテムまでスクロールしたいと思います。
アイテムを追加または削除しないため、ページの読み込み時に1回だけ発生します。
どうすればいいですか?
foreachバインディングのafterRenderプロパティを使用できます。
<div data-bind="foreach: { data: items, afterRender: doSomething }">
<div data-bind="text: $data">
</div>
あなたのviewModel:
var vm = {
doSomethingInvoked: false,
items: ko.observableArray(['apple', 'banan']),
doSomething: function (elements) {
if (!doSomethingInvoked) { // prevent invoking multiple times
var offsetTop = $(elements).filter('.focus').offset().top;
$('html,body').scrollTop(offsetTop);
doSomethingInvoked = true;
}
}
};