ノックアウト付きのjQueryアコーディオンコントロールを使用して、クライアント側のアクティビティに基づいてアイテムをコントロールに動的に追加/削除しています。私はそのようなノックアウトバインディングを作成しました:
ko.bindingHandlers.accordion = {
init: function (element, valueAccessor) {
var options = valueAccessor() || {};
setTimeout(function () {
$(element).accordion(options);
}, 0);
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).accordion("destroy");
});
},
update: function (element, valueAccessor) {
var options = valueAccessor() || {};
$(element).accordion("destroy").accordion(options);
}
}
今私の問題はアコーディオンのサイズです...それは常に非常に圧縮されているように見えます(垂直に)。次のように、コントロールを含むDIVの高さを設定してみました。
<div id="LearningPaths" data-bind="foreach: allLearningPaths, accordion: {}" style="height:500px; border:1px solid red;">
しかし、アコーディオンのパネルは変わりません...それらはまだあまり「背が高く」ありません。外観は次のとおりです:http ://sdrv.ms/STA9Y6
.accordion()を使用するときに渡すことができる設定があると思いますが、バインディングハンドラーでは、すでに'options'オブジェクトを渡しているため、その方法がわかりません。
私が欲しいのは、各パネルのコンテンツ領域をアコーディオンコントロールの利用可能な側面全体に拡張することです...アイデア?