Jquery functie aanroep op response ajax call

Pagina: 1
Acties:

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Hallo, ik zit met het volgende probleem. Ik heb een tab menuutje in jquery waarbij middels een ajax call op een tab button de bijbehorende content wordt geladen. Ongeveer als volgt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$( document ).ready( function() {
    $( "div#tabNavigation a" ).click( function () {
        $.get( "index.php", {
            controller: this.rev
        }, function ( response ) {
               $( "div#tabContent" )
                   .empty()
                   .append( response )
           });

        $( "div#tabNavigation a" ).removeClass( "selected" );
        $( this ).addClass( "selected" );

        return false;
    })
    .filter( ":first" ).click();
});

Hier komt netjes de response van de call in de tab content te staan. Echter nu wil ik op deze content ook een lightbox toepassen. Normaliter (zonder ajax call) zou dit simpelweg gebeuren met:

JavaScript:
1
2
3
$( document ).ready( function() {
    $( "div#photoContainer ul li a" ).lightbox();
});


Echter wanneer ik de lightbox call aanroep boven de 'return false' en ik verwacht dat de nieuwe DOM al opgebouwd is, wordt de response onaangetast in de div geplaatst, zonder de lightbox transformatie. Ook functie concatenatie aan de get aanroep werkt niet. De "div#photoContainer ul li a" structuur komt zeker terug in de response.

Iemand een idee wanneer de daadwerkelijke nieuwe DOM is opgebouwd en ik de lightbox wel kan aanroepen?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

De lightbox() aanroep in je ajax-callback gooien dan?

Of "handmatig" de lightbox openen en een live click event op die links zetten, maar dat lijkt me meer werk, en niet zo 1-2-3 begrijpbaar voor een andere ontwikkelaar (of jezelf over een jaar) ;)

[ Voor 65% gewijzigd door _Thanatos_ op 12-09-2009 01:49 ]

日本!🎌


  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Niet goed gedebugd inderdaad. Omdat de ajax call asynchroon is, moet de aanroep binnen de get request binnen de callback, en niet erbuiten. Als volgt opgelost dus

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$( document ).ready( function() { 
    $( "div#tabNavigation a" ).click( function () { 
        $.get( "index.php", { 
            controller: this.rev 
        }, function ( response ) { 
               $( "div#tabContent" ) 
                   .empty() 
                   .append( response );

               $( "div#setOverview ul li a" ).lightbox();
           }); 

        $( "div#tabNavigation a" ).removeClass( "selected" ); 
        $( this ).addClass( "selected" ); 

        return false; 
    }) 
    .filter( ":first" ).click(); 
});