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

关于destroy方法的github页面上有一些讨论,有关堆栈的几个问题,但是还没有一个直截了当的答案或解决方案,我在很多搜索之后能够找到。

当前版本的flexslider http://www.woothemes.com/flexslider/没有destroy方法。 在说明中它说前1.8版本,但使用该方法不起作用。

我需要取消绑定flexslider元素,然后在另一个元素上调用.flexslider(),因为我不希望同时运行多个滑块。

我怎样才能做到这一点? 注意:删除导航元素,删除类,解开UL并删除“.clone” li是不够的! 我想完全将滑块元素恢复到原始状态!

现在我在初始化flexslider之前克隆滑块,然后使用.after .after()在滑块后插入克隆,然后删除滑块。 但这对我来说似乎是一种非常沉重的态度。

 $projCur.addClass('flexslider').flexslider({ animation: "slide", animationSpeed: 500, slideshow: false, manualControls: '.dot-nav li a' }); 

谢谢!

Github用户提交了一个pull请求来为插件添加destroy方法。 https://github.com/woothemes/FlexSlider/pull/771

我用他的destroy方法获取了这个用户版本的插件,它对我很有用。 我是从https://github.com/bradgreens/FlexSlider/tree/release-2-2-0得到的

你试过分离并附上吗? 这将保持状态,甚至任何事件的分离。

 var flex = $('.flexslider').detach(); //detach $('body').append(flex); //reattach 

破坏方法永远不适合我。

我发现的唯一可靠解决方案(从当前版本2.2.2开始)是从DOM中完全删除flexslider元素,然后恢复它。

就像是:

 $('.flexslider').remove(); // re-insert clean mark-up so flexslider can reset itself properly $('.flexslider-container').append('
    ');

    然后我从头开始重新初始化flexslider:

     var imglist = '
  • ...'; $('.flexslider ul.slides').html(imglist); $('.flexslider').flexslider({ ... });

    我还发现这种方法比添加和删除幻灯片更可靠,以便让滑块自行更新。