Добавление элементов в jQuery Accordion с помощью jquery - программирование
Подтвердить что ты не робот

Добавление элементов в jQuery Accordion с помощью jquery

Я использую плагин аккордеона jQuery, чтобы сделать аккордеон некоторых данных. Затем я хочу, чтобы пользователь мог добавить больше данных к согласующему. Я правильно настроил аккордеон, поэтому я создал функцию, которая добавляет "элемент списка" к аккордеон, который соответствует семантике аккордеона.

Возможно ли "обновить" аккордеон, чтобы он работал с вновь добавленным элементом, не сохраняя новые данные в базе данных и обновляя страницу?

Что-то вроде этого:

.accordion('refresh')

Или что-то вроде live-события, добавленного в jQuery 1.3, кто-нибудь понял?

4b9b3361

Ответ 1

Я не тестировал его, но это, вероятно, должно работать: Скажите, что у вас есть ваш аккордеон с id #accordion

$('#accordion').append('<h3><a href="#">New Paragraph</a></h3><div><p>New data</p></div>')
    .accordion('destroy').accordion();

В принципе, просто уничтожьте и заново создайте аккордеон.

UPDATE:

Поскольку этот ответ был написан, в виджет аккордеона был добавлен метод refresh(). Его можно вызвать, вызвав:

$( ".selector" ).accordion( "refresh" );

Подробнее об этом методе можно узнать

Ответ 2

Чтобы добавить новый раздел и сохранить старый актив:

var active = $('#accordion').accordion('option', 'active');
$('#accordion').append('<h3><a href="#">New Paragraph</a></h3><div><p>New data</p></div>')
    .accordion('destroy').accordion({ active: active});

Ответ 3

Как уже упоминалось выше, Shahzad, jQuery UI 1.10 сделал это проще; см. документацию.

Ответ 4

Возможно, вы захотите посмотреть плагин LiveQuery: http://plugins.jquery.com/project/livequery

Он позволяет добавлять события и привязки после загрузки DOM.

Ответ 5

Поскольку мне нужны рабочие элементы добавления/редактирования/удаления vor аккордеона, я взломал эти маленькие функции javascript для этой цели

http://jsfiddle.net/Sd6fC/

h3 и div нужен уникальный идентификатор, который идет по следующему соглашению

<h3 id="divname_hitm_<uniquenumber>"><h3>

соответствующий div нуждается в следующем

<div id="divname_ditm_<samenumber as h3"></div>

примерный блок кода аккордеона

<div id="divname">
    <h3 id="divname_hitm_1><a href="#">Section 1</h3>
    <div id="divname_ditm_1>
        <p>Section 1 Payload</p>
    </div>
    <h3 id="divname_hitm_2><a href="#">Section 2</h3>
    <div id="divname_ditm_2>
        <p>Section 2 Payload</p>
    </div>
</div>

получайте удовольствие, возможно, это поможет некоторым ppl там!