如何销毁/删除/取消绑定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({ ... });
我还发现这种方法比添加和删除幻灯片更可靠,以便让滑块自行更新。