javascript – 如何在ajax调用后重新初始化Owl Carousel?

我试图在ajax成功通话后重新初始化猫头鹰旋转木马. ajax调用将更改数据但视图应保持不变.我遇到的问题是视图(轮播结构)不会重新初始化.页面加载时一切都很好.

我使用的是1.3.3版本

$(document).ready(function() {
 $(".owl-carousel").owlCarousel({
   items : 3
 });
});

Ajax调用

$.ajax({
    type: 'get',
    url: '/public/index',
    dataType: 'script',
    data: data_send,
      success: function(data) {
       $(".owl-carousel").owlCarousel({
         items: 3
       });
      }
   });
}

我错过了一些我需要做的事情吗?我在github页面上看过这个问题并尝试了这些建议,但无济于事.

编辑

根据给出的建议,我创建了这两个函数

function owlCarousel() {
  var owl = $(".owl-carousel"); 
  //init carousel
  owl.owlCarousel();
    owl.data('owlCarousel').reinit({
     items : 3
    });
}

function destroyOwlCarousel() {
  var owl = $(".owl-carousel");
  //init carousel
  owl.owlCarousel();
    owl.data('owlCarousel').destroy();
  }
}

它似乎有效,但想知道这是否是这样做的正确方法

解决方法:

以下示例有效.

初始化轮播:

owl = $("#owl-demo");

owl.owlCarousel({
  items: 10,
  autoplay: 1000,
});

当您使用ajax回调时,请尝试:

owl.data('owlCarousel').destroy();

owl.owlCarousel({
  items: 5,
  autoplay: 1000,
});

我创建了一个小提琴,向您解释如何重新初始化轮播:http://jsfiddle.net/s10bgckL/959/

PS:我没有创建一个选项数组,只是你想修改一些参数,如速度,显示项目的数量等.

我希望它有所帮助.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...