Событие изменения аккордеона JQueryUI - как получить из него данные?

http://jqueryui.com/demos/accordion/#event-changestart

Я пытаюсь получить запрос JQuery ajax, чтобы получить некоторые данные и заполнить тело div внутри каждой из моих строк аккордеона JQueryUI, когда строка расширяется. Мое намерение состоит в том, чтобы иметь скрытое поле или что-то подобное в интерактивных h3 аккордеона, и когда событие changestart срабатывает, ajax отключится и получит уникальную страницу для этой строки аккордеона и заполнит ее полезным html.

Моя проблема в том, что я не могу найти никакой информации о свойствах или значениях, прикрепленных к объектам, возвращаемым в параметрах функции события changestart. Кто-нибудь знает, как это сделать или получить эти значения?

Код, который у меня есть прямо сейчас, таков:

$("#accordion").accordion({
                collapsible: true,
                active: false,
                changestart: function(event, ui) {
                    alert('hello:' + event.target.id + ':' + ui.id);
                }
            });

Что вызывает предупреждение, отображающее сообщение hello:accordion:undefined

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

Спасибо,

Мэтт.


person Matt W    schedule 18.08.2010    source источник
comment
Ответ на этот пост очень помог, кстати: stackoverflow.com/questions/208016/   -  person Matt W    schedule 18.08.2010


Ответы (2)


Похоже, ui содержит это:

$('.ui-accordion').bind('accordionchangestart', function(event, ui) {
  ui.newHeader // jQuery object, activated header
  ui.oldHeader // jQuery object, previous header
  ui.newContent // jQuery object, activated content
  ui.oldContent // jQuery object, previous content
});
person David Perlman    schedule 18.08.2010
comment
Да, но для чего они? Например, у ui.oldHeader много свойств, но ни одно из них не имеет ничего общего с html внутри моего заголовка, на который я нажимал ранее. Во-первых, он не предоставляет идентификатор. - person Matt W; 18.08.2010
comment
Более того, как эти свойства помогают найти объект html dom, который был выбран и впоследствии вызвал событие changestart? - person Matt W; 18.08.2010
comment
Событие changestart привязано к аккордеону, а не к элементу, начавшему процесс. Как насчет подписки на событие click рассматриваемых h3 s... - person David Perlman; 18.08.2010
comment
Спасибо - это то, что я искал; Я не понял, что было связано и т. Д. - person Matt W; 19.08.2010

Вы можете легко получить доступ к содержимому этих элементов ui.new|old. Это элементы jQuery, поэтому они выглядят немного странно.

способ jQuery

ui.newHeader.first().html()

И если вам нужен доступ к элементу dom, используйте .get()

ui.newHeader.get().first()
person TilmanBaumann    schedule 11.07.2012