JQueryUI событие аккордеонного изменения - как извлечь из него данные? - PullRequest
4 голосов
/ 18 августа 2010

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

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

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

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

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

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

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

Спасибо

Мт.

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Похоже, 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
});
1 голос
/ 11 июля 2012

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

jQuery way

ui.newHeader.first().html()

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

ui.newHeader.get().first()
...