knockoutカスタムバインディングハンドラを使って内側のdivの高さが外側のdivの高さよりも大きい場合にのみ、1つの外部スクロール関数を呼び出す必要があります。私のカスタム関数を使ったノックアウトカスタムバインディング
毎回自分のカスタムコードでこれを達成できますか?
のHTMLコードです:結合
<div class="ModifiedNotesListSection" style="height:300px;">
<div class="Innerdiv" data-bind="EnscrollActive:{}">some dynamiic Content</div>
</div>
ノックアウトは次のとおりです。
ko.bindingHandlers.EnscrollActive = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var ActualHeight = $(element).height();
var ParentHeight = $(element).parents(".ModifiedNotesListSection").height();
if (ActualHeight > ParentHeight) {
$(element).parents(".ModifiedNotesListSection").enscroll({
verticalTrackClass: 'track4',
verticalHandleClass: 'handle4',
minScrollbarLength: 28
});
}
}
};
注:代わりにこのenscroll方法で、あなたが任意のjQueryのは、私の場合の条件内でクラスメソッドを追加記述することができます。
div要素のいずれかの高さが変更されるたびにカスタムバインディングを実行する必要があります。 – elbecita
@elbecita:はいまさに。 – Rayudu
要素の高さはどうして変化しますか? – Tomalak