jQuery Accordion - настройка «активной панели» во время загрузки - PullRequest
0 голосов
/ 27 мая 2011

Имея странную проблему, о которой я «думаю», я знаю, в чем заключается проблема, но не знаю, как ее решить.

У меня есть страница, которая содержит аккордеон jQueryUI, я пытаюсь установить «Активировать» во время выполнения, но я могу заставить это работать, только если я поставлю «Alert ();» раньше!

У меня есть несколько вызовов getJSON, которые заполняют содержимое Аккордеона (определяет, сколько панелей у него должно быть), и после того, как это будет выполнено, нужно перейти на соответствующую панель.

Фактический звонок здесь:

function jumpToAccordionDate(d,m,y){
var el3=$('#h'+d +  m +  y);
$('#accordion').accordion('activate',el3);}

Ранее, во время создания аккордеона, я уже установил id элемента H3 следующим образом:

$('#accordion').append('<h3 id="h' + dd + '"><a href="#">' + cDate + '</a></h3><div id="div' + dd + '"></div>').accordion('destroy').accordion();

Есть ли, может быть, ожидание, пока Аккордеон полностью завершит рендеринг на DOM, прежде чем я вызову jumpToAccordionDate, или есть лучшая альтернатива?

1 Ответ

1 голос
/ 27 мая 2011

Я думаю, что событие create может решить вашу проблему с синхронизацией. Документация немного расплывчата, но вы можете использовать ее следующим образом:

$("#accordion").accordion({
    create: function() {
        jumpToAccordionDate(...);
    }
});
...