#jquery #jquery-ui #jquery-ui-accordion
#jquery #jquery-пользовательский интерфейс #jquery-пользовательский интерфейс-аккордеон
Вопрос:
Возникла странная проблема, из-за которой я «думаю», что знаю, в чем проблема, но не знаю, как ее решить.
У меня есть страница, содержащая аккордеон jQueryUI, я пытаюсь установить «Активировать» во время выполнения, но я могу заставить это работать, только если я поставлю «Alert ();» раньше!
У меня есть несколько вызовов getJSON, которые заполняют содержимое аккордеона (определяет, сколько панелей в нем должно быть), и как только это будет завершено, необходимо перейти к соответствующей панели.
Фактический вызов здесь:
function jumpToAccordionDate(d,m,y){
var el3=$('#h' d m y);
$('#accordion').accordion('activate',el3);}
Ранее, во время создания аккордеона, я уже задавал идентификатор элемента H3 следующим образом:
$('#accordion').append('<h3 id="h' dd '"><a href="#">' cDate '</a></h3><div id="div' dd '"></div>').accordion('destroy').accordion();
Есть ли какой-нибудь способ, возможно, дождаться, пока аккордеон полностью завершит рендеринг в DOM, прежде чем я вызову jumpTo accordiondate, или есть альтернатива получше?
Ответ №1:
Я думаю, что create
событие может решить вашу проблему с синхронизацией. Документация немного расплывчата, но вы могли бы использовать ее следующим образом:
$("#accordion").accordion({
create: function() {
jumpToAccordionDate(...);
}
});