web-dev-qa-db-ja.com

コンテンツページでのjQueryアコーディオンの高さの制御

以下の手順/コードに従って、jQueryアコーディオンコンテンツページをDrupal7サイトに追加できました: http://www.chrisherberte.com/blog/drupal-7-and-jquery-ui-accordion

ただし、ドロップダウンフィールドの高さが正しく計算されていません。空白が多くて長すぎるものもあれば、短すぎるものもあり、すべてのテキストを表示するためにスクロールバーが追加されます。各フィールドのすべての高さを取得し、それを使用して平均高さを計算し、それを適用しているようです。

私はデフォルトのBartikテーマとカスタムテーマを試しましたが、機能はどちらも同じなので、cssの問題ではなく、jquery自体の問題です。

これに加えて、HTMLリスト要素を使用すると、すべてが同時に機能しなくなり、 フォーマットを完全に混乱させる になります。

screenshot

私はこの問題を修正するためにJqueryをどこでどのように編集するのかまったくわかりませんし、コアをハッキングしたくもありません。

5
Renaee

まず autoHeightをfalse に設定してみてください。これにより高さの問題が修正されます。
Drupalでは se behaviors も考慮する必要があります。

<?php
drupal_add_library('system', 'ui.accordion');
drupal_add_js("
  (function ($) {
    Drupal.behaviors.accordionRoles = {
      attach: function (context, settings) {
        $('#accordion').accordion({
          autoHeight: false
         });
      }
    };
  }(jQuery));
", 'inline');
?>

次に、HTMLリストに関する問題を見つけることができました。HTMLを取得してローカルに配置し、jQuery UIアコーディオンに デモソース を使用しました(セクション3にはHTMLリストが含まれています)。 。

HTML lists working fine

3
tostinni