2010-06-21 6 views
0

Je souhaite lancer un appel ajax chaque fois qu'un onglet en accordéon est ouvert pour obtenir le contenu de cet onglet. Pour cela, j'ai besoin de savoir quel onglet a été laissé et quel onglet est ouvert. De la documentation jquery:Récupère l'identifiant du contenu nouveau et ancien de jquery.ui.accordion

$('.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 
}); 

En Firebug je peux voir que ce que je dois le ui.newContent ou ui.oldContent.
Ils semblent être les divs réels, donc je dois d'une manière ou d'une autre obtenir leurs 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 
} 

Il est essentiellement la verry première étape où je faillir: S

Répondre

0

Vous obtenez l'ID d'un (jQuery) objet DOM via

my_object.attr("id") 
1

Il semble y avoir en fait un bug ou quelque chose newContent vous donnera « undefined » mais newHeader vous donnera la

$(ui.newHeader).attr('id') donnera l'id de la balise h3 $(ui.newContent).attr('id') devrait donner l'ID de la div, mais pas. Au lieu de cela, il donne «indéfini» même juste ui.newContent.attr('id') qui devrait être ok stil donne indéfini. En utilisant l'onglet DOM dans Firebug j'ai pu déterminer un travail bizarre-mauvaise autour

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

Il semble que le div est en fait dans ui.newContent.prevObject qui est un objet jQuery ... Semble fonctionner parfaitement