Как можно регулировать высоту аккордеона UI jQuery?

Мое первое предположение состоит в том, что вы определили функцию в цикле. Ключевой вопрос заключается в следующем:

for(...) {
  request.onsuccess = function() {
    //...
  };
}

Существуют допустимые способы определения функций в циклах, но приведенный выше пример не один. В общем, определение функции в цикле - дело грязное, поэтому по соглашению я бы рекомендовал просто полностью его избегать. Вместо этого попробуйте этот шаблон:

function outerfunction() {
   function innerhelperfunction(){}

   for(...) {
     request.onsuccess = innerhelperfunction;
   }
}

См., Например, Javascript: создание функций в цикле For

37
задан nullability 25 February 2013 в 22:46
поделиться

3 ответа

Когда вы объявляете div управления аккордеоном, вы можете поместить высоту в тег стиля для div. Затем вы можете установить свойство fillSpace: true, чтобы заставить элемент управления аккордеоном заполнить это пространство div независимо ни от чего. Это означает, что вы можете установить высоту так, как удобно для вашей страницы. Затем вы можете изменить высоту div при добавлении кода

Если вы хотите, чтобы аккордеон динамически изменял размер в соответствии с содержимым, которое он содержит, по мере необходимости, вы можете сделать следующий трюк опубликованный на сайте jQuery UI.

//getter
var autoHeight = $( ".selector" ).accordion( "option", "autoHeight" );
//setter
$( ".selector" ).accordion( "option", "autoHeight", false );

Это означает, что когда вы выбираете область с большим количеством текста, аккордеон будет пересчитывать его.

34
ответ дан 27 November 2019 в 04:03
поделиться

Используйте опция heightStyle управлять высотой аккордеона и каждой панели.

$("#accordion").accordion({
  heightStyle: "content"
});

Возможные значения:

  1. "автоматический" : Все панели будут установлены на высоту самой высокой панели.
  2. "заливка" : Расширьтесь до доступной высоты на основе родительской высоты аккордеона.
  3. "содержание" : Каждая панель будет только так же высока как ее содержание.
0
ответ дан 27 November 2019 в 04:03
поделиться

Просто вызовите метод accordions .resize () , он пересчитает его размер. http://docs.jquery.com/UI/Accordion#method-resize

0
ответ дан 27 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: