Cómo reiniciar el Owl Carousel después de la llamada ajax

Estoy tratando de reiniciar el carrusel de búhos después de una exitosa llamada ajax. La llamada ajax cambiará los datos, pero la vista permanecerá igual. Tengo un problema por el que la vista (la estructura del carrusel) no se reinicializará. Todo está bien al cargar la página.

estoy usando la versión 1.3.3

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

Llamada Ajax

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

Me estoy perdiendo algo que tengo que hacer. He visto este problema en la página de github y probé las sugerencias, pero fue en vano.

Cualquier ayuda apreciada

Editar

por el consejo dado, he creado estas dos funciones

 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(); } } 

Parece funcionar, pero se pregunta si esta es la forma correcta de estar haciendo esto.

El siguiente ejemplo funciona.

Inicializando el carrusel:

 owl = $("#owl-demo"); owl.owlCarousel({ items: 10, autoPlay: 1000, }); 

Y cuando uses la callback ajax, intenta:

 owl.data('owlCarousel').destroy(); owl.owlCarousel({ items: 5, autoPlay: 1000, }); 

Creé un violín para explicarte cómo reiniciar el carrusel: http://jsfiddle.net/s10bgckL/959/

PD: No creé una matriz de opciones solo si quieres modificar algunos parameters como velocidad, cantidad de elementos mostrados, etc.

Espero que ayude.

Esto debería ayudar:

 /* reinit() method reinitialize plugin Syntax: owldata.reinit(newOptions) Yes! you can reinit plugin with new options. Old options will be overwritten if exist or added if new. You can easly add new content by ajax or change old options with reinit method. */ $('.reinit').click(function(e){ e.preventDefault() if(booleanValue === true){ booleanValue = false; } else if(booleanValue === false){ booleanValue = true; } owl.data('owlCarousel').reinit({ singleItem : booleanValue }); }) 

Pruebe $(window).load() lugar de reinitialize

Pruébalo, existe en la documentation del búho :

 //Initialize Plugin $(".owl-carousel").owlCarousel() //get carousel instance data and store it in variable owl var owl = $(".owl-carousel").data('owlCarousel'); owl.reinit(options) 
 $('#owl-demo').data('owlCarousel').reinit();