Получить идентификатор нового и старого контента от jquery.ui.accordion - PullRequest
0 голосов
/ 21 июня 2010

Я хочу запускать вызов ajax всякий раз, когда открывается вкладка аккордеона, чтобы получить содержимое этой вкладки.Для этого мне нужно знать, какая вкладка была оставлена ​​и какая вкладка открыта.Из документации jquery:

$('.ui-accordion').bind('accordionchange', 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
});

В firebug я вижу, что мне нужен ui.newContent или ui.oldContent.
Похоже, что это действительно div, поэтому мне как-то нужно получитьпо их идентификаторам.

function OnAccordionChanged(event, ui) {
    //get the id of the old tab
    var oldId = ui.oldContent.id;

    //apply (business) filters 
    //get the id of the new tab
    //fetch the content 
    //append to new tab
    //party
}

По сути, это первый шаг, где я терплю неудачу: S

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Кажется, что на самом деле ошибка или что-то в этом роде newContent даст вам 'undefined', однако newHeader даст вам

$(ui.newHeader).attr('id') даст идентификатор тега h3 $(ui.newContent).attr('id') должен дать идентификатор div, но не дает. Вместо этого он дает 'undefined', даже просто ui.newContent.attr('id'), что должно быть хорошо, но все равно дает undefined. Используя вкладку DOM в Firebug, я смог определить странно-неправильную работу вокруг

ui.newContent.prevObject.attr('id')

Кажется, что div на самом деле находится в ui.newContent.prevObject, который является объектом jQuery ... Кажется, работает безупречно

0 голосов
/ 21 июня 2010

Вы получаете идентификатор объекта (jQuery) DOM через

my_object.attr("id")
...