2011-02-08 54 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(); 

我希望有所帮助!网上有很多关于这个问题的帖子,没有提出解决方案。现在我们有一个。 :)