javascript - Owl carousel .destroy() 删除不相关的 div

标签 javascript jquery owl-carousel

我想根据视口(viewport)的宽度在轮播 View 和不同布局之间切换。设置轮播效果很好。当我想删除它时遇到了问题。

我使用 $owlTeam.destroy(); 根据文档,它应该在轮播初始化之前重新创建标记的状态,但由于某种原因删除了两个意外且关键的 div。一个是包装 div,它是包含轮播的 div 的父级,另一个是轮播 div 本身。

这是我的标记:

<section id="some-id" class="team">
  <div class="wrapper"> <!-- this gets removed on destroy -->
    <header><!-- content --></header>
    <div class="owlCarousel"> <!-- and this gets removed on destroy -->
      <article class="big"><!-- content contains another .wrapper --></article>
      <article class="big"><!-- content contains another .wrapper --></article>
      <article class="small"><!-- content --></article>
      <article class="small"><!-- content --></article>
      <!-- and some more articles -->
    </div>
  </div>
</section>

这是我使用的JS:

var $owlTeam;
if( $window.width() < 680 ) {
    $('.team .owlCarousel').owlCarousel({
        autoPlay: false
        , singleItem:true
        , transitionStyle : "fade"
        , pagination : true
    });
    $owlTeam = $('.team .owlCarousel').data('owlCarousel');
}

$window.resize(function() {
    if( $window.width() < 680 ) {
        $('.team .owlCarousel').owlCarousel({
            autoPlay: false
            , singleItem:true
            , transitionStyle : "fade"
            , pagination : true
        });
        $owlTeam = $('.team .owlCarousel').data('owlCarousel');
    } else {
        if( typeof $owlTeam != 'undefined' ) {
            $owlTeam.destroy();
        }
    }
});

我尝试使用 ID 直接选择应该包含轮播的 div,但这根本没有改变行为。我可以用 JS 重新插入丢失的标记,但这似乎更像是一个创可贴,而不是一个正确的解决方案。

是什么导致了这种行为以及如何解决它?

jQuery 版本:1.11.1 猫头鹰版本:1.3.2 我测试的浏览器:FF 35、Chrome 40

最佳答案

这是一个报告的错误: https://github.com/smashingboxes/OwlCarousel2/issues/460

无论如何,你可以尝试这个来摧毁 Owl Carousel :

$('#your_carousel').trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
$('#your_carousel').find('.owl-stage-outer').children().unwrap();

关于javascript - Owl carousel .destroy() 删除不相关的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28369409/

相关文章:

javascript - 如何将粘性菜单包含在 float 侧边栏中?

javascript - jQuery ajax 和 javascript 对象

javascript - 在工具提示模板 kendo UI 中一起显示系列和 y 轴数据的值

javascript - 如何动态地在 Owl Carousel 中创建新的幻灯片元素

asp.net - 为什么 Breeze/Knockout 模板作为工具而不是模板安装,使其无法使用?

javascript - Cordova 相机插件适用于模拟器,不适用于 Android 设备

javascript - 引用使用 ngRepeat 创建的动态表中的 DOM 元素

javascript - JQuery:当元素隐藏时防止div折叠()

javascript - 获取图像项目数并更新 owl carousel 2 中的中心选项

javascript - Owl Carousel 幻灯片中的元素在 css 动画发生之前显示