如何销毁/删除/取消绑定Flexslider

时间:2012-11-03 22:01:00

标签: jquery slideshow destroy flexslider

关于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'             
});

谢谢!

4 个答案:

答案 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
});