10

github页面上有一些关于destroy方法的讨论,还有一些关于堆栈的问题,但还没有一个简单的答案或解决方案,我经过大量搜索后能够找到。

当前版本的 flexslider http://www.woothemes.com/flexslider/没有销毁方法。在注释中它说以前的版本 1.8 可以,但是使用该方法不起作用。

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

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

现在我在初始化 flexslider 之前.after()克隆滑块,然后在滑块之后插入克隆,然后删除滑块。但这对我来说似乎是一种非常严厉的方法。

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

谢谢!

4

4 回答 4

5

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

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

于 2013-09-11T06:12:44.097 回答
4

您是否尝试过分离和附加?这将使任何事物的状态甚至事件保持分离。

var flex = $('.flexslider').detach(); //detach
$('body').append(flex); //reattach
于 2013-06-21T16:05:16.527 回答
4

destroy 方法对我不起作用。

我找到的唯一可靠的解决方案(从当前版本 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({ 
    ...
});

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

于 2014-03-11T14:50:36.890 回答
0

对我来说,我找到了这个解决方案:

$('.logo-carousel').flexslider({
   move : 0
});
于 2019-04-15T14:31:38.820 回答