0

ノックアウト付きの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'オブジェクトを渡しているため、その方法がわかりません。

私が欲しいのは、各パネルのコンテンツ領域をアコーディオンコントロールの利用可能な側面全体に拡張することです...アイデア?

4

1 に答える 1

1

まず、あなたの問題は、SharePoint Web パーツに関連する人だと思います。SharePoint の概要リンク Web パーツに基づくアコーディオン ソリューションを作成しました。これはhttp://www.n8d.at/blog/turn-summary-link-web-part-into-an-accordion/にあります。 これを実現するために、私は独自のアコーディオンを作成しました。これにより、ページを編集したい場合に、アコーディオン スクリプトが読み込まれないようにすることもできます。

一方、あなたの問題は、jquery ではなく css に関連していると思います。css で float スタイルを使用していますか? 次に、いわゆるクリアフィックスを使用していることを確認する必要があります。これは、次のスタイルを定義することで実行できます。

.panel:after{ クリア: 両方; }

于 2012-11-09T15:23:00.660 に答える