2009-08-25 4 views
0

Я пытаюсь создать галерею изображений из RSS-ленты с помощью плагина galleryview. Когда содержимое html статично на странице, плагин работает, но когда я генерирую html динамически из rss-канала, вызывающего плагин, кажется, ничего не делает. Вот код, который я использую:jquery use plugin on dynamic content

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); 

Что я делаю неправильно?

ответ

2

Вызов прибудете является асинхронным, так что вам нужно добавить вызов galleryview в конце функции обратного вызова в get как get возвращается немедленно, а затем galleryview называется (на пустой DIV):

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

    // rest of your code here 

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