2009-08-25 5 views
0

Je suis en train de créer une galerie d'images à partir d'un flux rss avec le plugin galleryview. Lorsque le contenu html est statiquement dans la page, le plugin fonctionne, mais quand je génère dynamiquement le html à partir du flux RSS, l'appel du plugin semble ne rien faire. Voici le code que j'utilise:jquery utiliser plugin sur le contenu dynamique

function getScrollerContent() { 
    $.get('photos.rss', {}, function(xml) { 
     var contentHtml = ''; 
     var filmStripHtml = '<ul class="filmstrip">'; 
     $('item', xml).each(function(i) { 
      contentHtml += '<div class="panel">'; 
      var imgSrc = $(this).find('image').text(); 
      contentHtml += '<img src="' + imgSrc + '" />'; 
      contentHtml += '<div class="panel-overlay">'; 
      contentHtml += '<h2><a href="' + $(this).find('link').text() + '">' + $(this).find('title').text() + '</a></h2>'; 
      contentHtml += '<p>' + $(this).find('desc').text() + '</p>'; 
      contentHtml += '</div>'; 
      contentHtml += '</div>'; 
      filmStripHtml += '<li><img src="' + imgSrc + '" /></li>'; 
     }); 
     filmStripHtml += '</ul>'; 
     contentHtml += filmStripHtml; 

     $('#photos').append(contentHtml); 
    }); 

    $('#photos').galleryView({ 
     panel_width: 800, 
     panel_height: 300, 
     frame_width: 100, 
     frame_height: 100 
    }); 


} 

$(getScrollerContent); 

Qu'est-ce que je fais mal?

Répondre

2

L'appel get est asynchrone de sorte que vous devez ajouter l'appel à galleryview à la fin de la fonction de rappel dans votre get comme get retourne immédiatement et galleryview est appelée (sur une div vide):

$.get('photos.rss', {}, function(xml) { 

    // rest of your code here 

    $('#photos').galleryView({ 
     panel_width: 800, 
     panel_height: 300, 
     frame_width: 100, 
     frame_height: 100 
    }); 
}); 
Questions connexes