Випуск JQuery Accordion Auto Height


76

Я використовую JQuery Accordion. У мене є ця сторінка тут: http://www.hauppauge.com/site/support/support_colossus.html#tabs-6

Те, що трапляється, займає певний час завантаження автоматичної висоти, перш ніж вона завантажиться, під вмістом є багато пробілів. Коли він нарешті завантажиться, висота збільшиться довше, а потім підніметься до правильної висоти вмісту. Чи є спосіб, щоб це було безперешкодно? Я просто хочу мати можливість клацнути вкладку "Аккордеон" і плавно розширити її до точної висоти вмісту.

Оновлення 08.08.2014:

Використовуйте , heightStyle: "content"якщо ви використовуєте версію 1.9 і вище ( Tarun в відповідь)

Використовувати autoHeight: falseдля версії 1.8 та нижче (відповідь iappwebdev)


Ви 274десь застосовуєте висоту . спробуйте видалити або хоча б зменшити.
Імдад,

Я просто шукав це, і я не маю уявлення, де це у мене є. Як ти це бачиш? Дякую!
Кім,

Перевірте за допомогою Firebug. за замовчуванням висота не 274повинна бути такою великою
Імдад,

Відповіді:


57

То чому б вам просто не встановити autoheightзначення false?

$( ".selector" ).accordion({ autoHeight: false });

http://jqueryui.com/demos/accordion/#option-autoHeight

РЕДАГУВАТИ

Переглядаючи ваш коментар:

// Accordion
$("#accordion").accordion({ header: "h3" });
$("#accordion").accordion({ collapsible: true });
$("#accordion").accordion({ autoHeight: false, navigation: true });

Ви ініціалізуєте акордеон, а потім додаєте до нього більше варіантів. Чому ти це робиш? Значенням за замовчуванням autoHeightє true, тому кожна вкладка отримує фіксовану висоту. Помістіть усі опції в один дзвінок:

// Accordion
$("#accordion").accordion({
    header: "h3",
    collapsible: true,
    autoHeight: false,
    navigation: true 
});



РЕДАГУВАТИ

Щодо вашого 2-го коментаря:

Погляньте на http://jqueryui.com/demos/accordion/#option-header . Ви бачите, що ця опція h3встановлена ​​за замовчуванням, тому вам не потрібно встановлювати її під час дзвінка.

І ви отримаєте відповідь на своє запитання тут: акордеон JQuery не працює без тегів h3 .

Дуже важливо пройти jQuery API, щоб покращити свої знання. Для jQuery API перейдіть за адресою http://api.jquery.com/, а для jQuery UI - за адресою http://jqueryui.com/demos/ . Якщо у вас є ще запитання, не соромтеся запитувати після того, як ви спробували вирішити проблему і після того, як ви провели якесь дослідження.

Якщо все це відповіло на ваше запитання, позначте його як правильну відповідь.


Я зробив, ось що у мене є: // Аккордеон $ ("# акордеон"). Акордеон ({заголовок: "h3"}); $ ("# акордеон"). акордеон ({розбірний: true}); $ ("# акордеон"). акордеон ({autoHeight: false, navigation: true});
Кім,

Це спрацювало! Дуже дякую! Як ви можете зрозуміти, я вчусь. Я дуже вдячний вам за допомогу в цьому! Це зводило мене з розуму. Ви б не знали, навіщо потрібен заголовок: "h3"? Без цього він не працюватиме належним чином. Знову дякую!
Кім,

Дякую за посилання на API, я перегляну це. Я знайомий з демо-посиланням, саме звідси я отримував багато коду. Я думаю, що мене бентежило, це те, що я також взяв код із цієї сторінки [ hauppauge.com/jquery/index.html][1] [1]: hauppauge.com/jquery/index.html, завантажений з JQuery, і там вони використовують h3 . Я новачок у цьому, але обов'язково прочитаю сторінку API. Знову дякую!
Кім,

Параметр {autoHeight: false} не був задокументований в API: api.jqueryui.com/accordion Дякуємо!
Марк Максмайстер

164

ви повинні використовувати

$("#accordion").accordion({ 

heightStyle: "content" 

});

Він встановить висоту відповідно до вашого вмісту. і не використовуватиме порожній простір як висоту.


8
пальці вгору. коротко просто і найкраще, це працює :)
Еворлор

5
Дякую, спробував autoHeight: false... але нічого, це зробило трюк
П'єр,

1
Це найкраща відповідь! Великі пальці вгору - змініть прийняту відповідь ТА!
NFlow

1
Поки ви використовуєте jQuery UI 1.9 або пізнішої версії, це найкраща відповідь, як зазначає OP у своєму редагуванні.
BobRodes

1
Фу, зекономив багато часу. Дякую. Працював ідеально.
Makarand Mane

15
$("#accordion").accordion({ 

heightStyle: "content" 

});

Це працює в новій версії, це працювало для мене !!!


0

Це спрацювало для мене.

$( ".accordion" ).accordion({ 
 autoHeight: false,
 collapsible: true,
 navigation: true 
 });

0

Якщо поки що нічого не працює, просто змініть розмір jQuery Accordion contentElement- він викликається data-contentза замовчуванням, якщо ви не налаштували його інакше:

$('.accordion').find('[data-content]').resize();

Це також спрацює, якщо ви хочете змінити розмір акордеона після динамічного завантаження даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.