jQueryUI - Аккордеон - Активация с использованием идентификатора

Я проверил несколько сайтов, пытаясь понять это. Однако мне не повезло, и я решил сделать пост здесь.

То, что я пытаюсь сделать, это настроить активный аккордеон в зависимости от идентификатора. Ниже то, с чем я работаю.

JQuery-код:

$(function () {
    $("#accordion").accordion({
        collapsible: true,
        header: "h3",
        active: 'h3.content3',
        heightStyle: "content"
    });
});

HTML:

<div id="accordion">
    <h3 class="content1">Content Title</h3>
    <div align="left">
        <p>Content for 1 Goes Here</p>
    </div>

    <h3 class="content2">Content Title</h3>
    <div align="left">
        <p>Content for 2 Goes Here</p>
    </div>

    <h3 class="content3">Content Title</h3>
    <div align="left">
        <p>Content for 3 Goes Here</p>
    </div>
</div>

Надеюсь, я объяснил это достаточно хорошо, если нет, дайте мне знать. Я постараюсь тебе помочь.


person ZGold92    schedule 04.03.2014    source источник
comment
Я не понимаю... что вы хотите активировать?   -  person Spokey    schedule 04.03.2014
comment
Похоже, вам нужно установить число, а не строку: $( .selector ).accordion({ active: 2 });   -  person ravb79    schedule 04.03.2014
comment
но это работает.. jsfiddle.net/Spokey/uKzpp какую версию вы используете?   -  person Spokey    schedule 04.03.2014


Ответы (1)


Установите active на основе h3 индекса:

active: $('#accordion h3').index($('.content3'))
person Johan    schedule 04.03.2014
comment
Если это единственный уникальный идентификатор, разве это не всегда 0? - person ravb79; 04.03.2014
comment
@ ravb79 Вы имеете в виду индекс h3? В контексте #accordion он будет начинаться с нуля и представлять индекс выбранного h3. - person Johan; 04.03.2014
comment
Но разве вы не индексируете все h3 с классом .content3? (Который существует только один раз) - person ravb79; 04.03.2014
comment
@ ravb79 возвращается его индекс в родительском элементе, а не индекс из выбранных элементов, но поскольку в родительском элементе больше элементов, это не вернет правильный номер - person Spokey; 04.03.2014
comment
Почему $('#accordion h3.content3').index() дает мне 4, а .content1 и .content2 дают мне 0 и 2 соответственно? Почему пропускает? Он также считает div? - person ravb79; 04.03.2014
comment
Большое спасибо. Это устранило проблему, с которой я имел дело. Большое спасибо за вашу помощь, ребята! - person ZGold92; 04.03.2014