ノックアウト foreach 構文を使用してデータ バインドされた div があります。
<div id="myDiv" data-bind="foreach: { data: myData }, myCustomBinding: { param: paramname }">
<a id="myLink" class="myLink" data-bind="text: label"></a>
</div>
myData は、データを保持する ObservableArray です。次のように、myData にノックアウト サブスクライブがあります。
myData.subscribe(function () {
if (myData().length > 0) {
resizeDiv();
}
});
resizeDiv() 関数では、結合されたすべてのコントロールのサイズが div の幅より大きい場合、この div からいくつかのリンクを削除し、別の非表示の div に移動しようとしています。しかし問題は、現時点ではコントロールの幅が利用できないことです。ブラウザーのサイズを少し変更すると、DOM でコントロールの幅が更新されます。同じ resizeDiv() メソッドを呼び出すウィンドウ サイズ変更イベントを追加しました。
$(window).on('resize', function () {
resizeDiv();
});
自分の問題/懸念を伝えることができたかどうかわからない. さらに情報が必要な場合はお知らせください。
更新: これはフィドルhttp://jsfiddle.net/2m3Jk/7/です。しかし、バインディングハンドラーはフィドルで発火していません。私のアプリケーションでは、ウィンドウのサイズを変更すると、バインディング ハンドラーが起動し、メニュー項目が 1 つの div から別の div に移動します。ただし、ページの読み込み時ではありません。