2011-02-08 51 views
1

我有一個Jquery循環插件的問題。jquery循環插件 - 與Ajax圖像的大問題加載

我通過Ajax通過Ajax載入圖庫的圖像。

當我點擊圖庫的下一個或上一個按鈕時,序列無法正常工作。

有時類activeSlide不會更改元素或者圖庫的某個元素被遺漏。

如果我刷新頁面,它工作正常。

當我進行ajax調用並更改庫中的圖像時,我在重新聲明它之前和之後銷燬插件。

如果我正確設置了autosliding allworks的超時時間。

我發佈了代碼。

有人可以幫助我嗎?它的3個日子裏,我試圖找到一個解決方案:(((((((

謝謝達維德

這是我的代碼:

success: function(data){ 

    $('#imgcaption').cycle('destroy');//Before load data I destroy the gallery 

    $('#dettaglio #imgcaption').empty();//I clean the div's 
    $('#dettaglio #nav').empty(); 

      //I insert the new Images 
      $.each(data.foto, function(index, value){ 
      $('#imgcaption').append('<div><img src="' + value + '" alt="" /></div>');   
    }); 

      //I redeclare the Cycle 
    $('#imgcaption').cycle({ 
     timeout: 0, 
     fx: 'scrollHorz', 
     speed: 500, 
     pager: '#nav', 
     pagerAnchorBuilder: function(idx, slide) { 
      return '<a href="#"></a>'; 
      } 
    }); 

回答

0

我有同樣的問題顯然的jQuery在ajax加載後,Cycle仍然會看到舊的DOM元素,所以當你將.cycle()應用到新鮮的AJAX DOM時,jQuery Cycle會將它綁定到來自AJAX的新DOM和舊的DOM 「

這就是爲什麼你的分頁全部搞砸了(更具體地說,拳頭設置o f頁面鏈接引用舊的DOM,後面的集合引用新鮮的AJAX DOM)。

所以,一個解決辦法是,你做你.cycle( '摧毀')

$(".cycleSelector").remove(); 
$(".pagerSelector").remove(); 

或者你的情況後手動刪除與週期相關的DOM元素:

$("#imgcaption").remove(); 
$("#nav").remove(); 

我希望有所幫助!網上有很多關於這個問題的帖子,沒有提出解決方案。現在我們有一個。 :)