0

Knockout.jsを使用してforeachバインディングを使用してアイテムのリストを作成します。foreachバインディングのすべてのアイテムがレンダリングされたら、「focused」と呼ばれる特定のクラスのアイテムを検索し、ウィンドウをそのアイテムまでスクロールしたいと思います。

アイテムを追加または削除しないため、ページの読み込み時に1回だけ発生します。

どうすればいいですか?

4

1 に答える 1

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;
       }
   }
};
于 2013-02-17T09:25:23.227 に答える