我遇到了Jquery Cycle插件的问题。
我通过Ajax加载了画廊的图像。
当我单击图库旁边的按钮或上一个按钮时,序列无法正常工作。
有时,类activeSlide不会更改元素,也不会错过图库的元素。
如果我刷新页面,它可以正常工作。
当我进行ajax调用并更改图库中的图像时,我会在重新声明之前和之后销毁插件。
如果我为autosliding allworks设置了超时。
我发布了代码。
有人可以帮帮我吗?我试图找到一个解决方案是3天:(((((<(谢谢Davide。
这是我的代码:
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 :(得分:0)
我遇到了同样的问题。显然jQuery Cycle在ajax加载后仍会看到旧的DOM元素。因此,当您将.cycle()应用于新的AJAX DOM时,jQuery Cycle会将其绑定到AJAX的新DOM和“已删除”的旧DOM。
这就是为什么你的分页被搞砸了(更具体地说,第一组页面链接引用了旧的DOM,后面的set引用了新的AJAX DOM)。
因此,修复是在执行.cycle('destroy')后手动删除与循环相关的DOM元素
$(".cycleSelector").remove();
$(".pagerSelector").remove();
或者在你的情况下:
$("#imgcaption").remove();
$("#nav").remove();
我希望有所帮助!关于这个问题,网上有很多帖子,没有提出解决方案。现在我们有一个。 :)