从jquery.ui.accordion获取新旧内容的ID

时间:2010-06-21 15:06:04

标签: jquery accordion

我想在打开手风琴选项卡时启动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
});

在萤火虫中,我可以看到我需要的是ui.newContent或ui.oldContent。
这些似乎是实际的div,所以我不知何故需要得到他们的id。

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 个答案:

答案 0 :(得分:1)

似乎确实有一个错误或newContent会给你'未定义',但是newHeader会给你

$(ui.newHeader).attr('id')将提供h3标记的ID $(ui.newContent).attr('id')应该给出div的id,但不是。相反,它给出'undefined',即使只是ui.newContent.attr('id'),它应该是正确的,stil给出undefined。使用firebug中的DOM选项卡,我能够确定一个奇怪的不正确的工作

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

似乎div实际上在ui.newContent.prevObject这是一个jQuery对象......似乎完美无缺地工作

答案 1 :(得分:0)

您可以通过

获取(jQuery)DOM对象的ID
my_object.attr("id")