Аккордеон jQuery закрывается при загрузке

Как я могу закрыть виджет аккордеона при загрузке страницы? Это код, который я использую:

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

Кроме того, это может быть неважно, но элементы аккордеона находятся внутри элементов диалога.


person Yottagray    schedule 16.02.2011    source источник
comment
разделы аккордеона находятся внутри диалоговых разделов - что вы имеете в виду? Можете ли вы вставить свой HTML? Реализация аккордеона jQuery имеет семантические требования. Для разметки требуются пары заголовков и разделов: docs.jquery.com/UI/Accordion.   -  person Shane Garelja    schedule 16.02.2011


Ответы (2)


Для параметра active установлено значение false должен (согласно документам) вызывает свертывание меню при загрузке страницы (хотя для этого специально требуется collapsible: true (который у вас уже есть).

Если это еще не в $(window).load() или $(document).ready(), тогда его нужно обернуть в один из них; если он завернут так, то без демонстрации (возможно, JS Fiddle или JS Bin?), трудно предположить, что может произойти или пойти не так.

Выполняется ли оставшаяся часть JavaScript (помимо вызова .accordion()? Если нет, то где-то может быть ошибка JS. Возможно, стоит запустить его через JS Lint, чтобы быть уверенным.

person David says reinstate Monica    schedule 16.02.2011
comment
Код не находится в $(document).ready(), но скрипт находится в конце тела, так что это не имеет значения, верно? Весь javascript работает безупречно, кроме этого. - person Yottagray; 16.02.2011
comment
Я бы рекомендовал попробовать это в $(document).ready() хотя бы для того, чтобы исключить одно возможное решение. Я бы определенно рекомендовал опубликовать демонстрацию (на любом из сайтов в моем ответе), чтобы мы могли увидеть, как она работает/не работает, и предложить ответы. Без html трудно помочь. - person David says reinstate Monica; 16.02.2011
comment
Готовя jsbin для демонстрации, я обнаружил странный конфликт между используемым плагином для выбора цвета и диалоговым виджетом. Спасибо за вашу помощь. - person Yottagray; 16.02.2011
comment
@Yottagray: никаких проблем, хотя я хотел бы быть немного более конкретно полезным... :) - person David says reinstate Monica; 16.02.2011
comment
Спасибо, спасибо, однако, он очень быстро мигает расширенным контентом при загрузке. - person Jack; 19.09.2019

Значение индекса может быть логическим или целым числом.

<script language="javascript" type="text/javascript">
    $(function () {
        var activeIndex = parseInt($('#<%=AccordionIndexHidden.ClientID %>').val());
        if (activeIndex < 0) 
            activeIndex = false;
        $("#accordion").accordion({
            autoHeight: false,
            event: "mousedown",
            active: activeIndex,
            change: function (event, ui) {
                var index = $(this).children('h3').index(ui.newHeader);
                $('#<%=AccordionIndexHidden.ClientID %>').val(index);
            }
        });
    });


</script>

Не забудьте начать с индекса меньше 0

    <asp:HiddenField ID="AccordionIndexHidden" runat="server" Value="-1" />

К вашему сведению, скрытое поле должно сохранять открытыми аккордеоны между обратными передачами.

person Alex Z    schedule 02.10.2012