关于destroy方法的github页面上有一些讨论,有关堆栈的几个问题,但还没有一个直截了当的答案或解决方案,我在很多搜索之后能够找到。
当前版本的flexslider http://www.woothemes.com/flexslider/没有destroy方法。在说明中它表示前1.8版本,但使用该方法不起作用。
我需要取消绑定flexslider元素,然后在另一个元素上调用.flexslider(),因为我不希望同时运行多个滑块。
我该怎么做?注意:删除nav元素,删除类,展开UL并删除“.clone”li
是不够的!我想完全将滑块元素恢复到原始状态!
现在我在初始化flexslider之前克隆滑块,然后使用.after()
在滑块后插入克隆,然后删除滑块。但这对我来说似乎是一种非常沉重的态度。
$projCur.addClass('flexslider').flexslider({
animation: "slide",
animationSpeed: 500,
slideshow: false,
manualControls: '.dot-nav li a'
});
谢谢!
答案 0 :(得分:5)
Github用户提交了一个pull请求来为插件添加destroy方法。 https://github.com/woothemes/FlexSlider/pull/771
我使用他的destroy方法获取了这个用户版本的插件,它对我很有用。我是从https://github.com/bradgreens/FlexSlider/tree/release-2-2-0
得到的答案 1 :(得分:4)
你试过分离并附上吗?这将保持状态,甚至事件的任何超脱。
var flex = $('.flexslider').detach(); //detach
$('body').append(flex); //reattach
答案 2 :(得分:3)
破坏方法永远不适合我。
我发现的唯一可靠的解决方案(从当前版本2.2.2开始)是从DOM中完全删除flexslider元素,然后恢复它。
类似的东西:
$('.flexslider').remove();
// re-insert clean mark-up so flexslider can reset itself properly
$('.flexslider-container').append('<div class="flexslider"><ul class="slides"></ul></div>');
然后我从头开始重新初始化flexslider:
var imglist = '<li><img ...></li><li><img ...></li>...';
$('.flexslider ul.slides').html(imglist);
$('.flexslider').flexslider({
...
});
我还发现这种方法比添加和删除幻灯片更可靠,以便让滑块自行更新。
答案 3 :(得分:0)
对我来说,我找到了解决方案:
$('.logo-carousel').flexslider({
move : 0
});