2015-01-06 24 views
13

Başarılı bir ajax çağrısından sonra baykuş karuselini yeniden başlatmaya çalışıyorum. Ajax çağrısı verileri değiştirecek ama görünüm aynı kalmalı. Görünümün (karusel yapı) yeniden başlatmayacağı bir sorun yaşıyorum. Her şey sayfa yüklendiğinde iyi. im kullanarak sürüm 1.3.3Ajax çağrısından sonra Baykuş Atlıkarınca nasıl yeniden başlatılır

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

Ajax çağrısı

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

i yapmanız gereken şey eksik muyum. Bu konuya github sayfasından baktım ve önerileri denedim ama boşuna.

Herhangi bir yardım ben bu iki işlevi

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

İşe ama görünüyor oluşturduk verilen tavsiyelerden

Düzenleme

takdir bu bunu yapan çok doğru yolu olup olmadığını merak?

+0

Burada yardımcı olabilecek Baykuş Carousel sayfası - http://owlgraphic.com/owlcarousel/demos/manipulations.html Eğer link..trying koymak için addItem() veya REINIT() –

+0

teşekkürler kullanılarak denediniz Onların örneklerini kullanarak bir şey birlikte, ama şu ana kadar çalışma değil – Richlewis

cevap

0

Bu yardımcı olacaktır:

/* 
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 
    }); 
}) 
+0

teşekkürler, burada aptal olduğun için beni affet ama eğer ajax başarı geri çağırma içinde çalışan bir işlev yaratmak isteseydim bunu nasıl kurardım? Yukarıdakilerin nasıl çalıştığını gerçekten göremiyorum. – Richlewis

+0

aldığımı düşünüyorum, örneğimi postalayacağım – Richlewis

0

owl documention yılında, Deneyin yerine reinitialize

+0

Sadece baykuş-atlıkarınca dışında dalgalanma etkileri olabilir - bu dar ajax çağrısının farkında olmayabilecek pek çok şey yükü dinleyebilir. Yanlış değil, sadece büyük bir balyoz. – allicarn

-2
$('#owl-demo').data('owlCarousel').reinit(); 
+0

Sayın HiDeo bu kod, başlatılması için baykuş-atlıkarınca benim için çalışır. yeniden başlatacak bir kod var mı – venkat

+0

Bu hatayı alıyorum Uncaught TypeError: Özellik undefined 'reinit' okunamıyor –

0

onun mevcut $(window).load() deneyin:

//Initialize Plugin 
    $(".owl-carousel").owlCarousel() 

    //get carousel instance data and store it in variable owl 
    var owl = $(".owl-carousel").data('owlCarousel'); 

    owl.reinit(options) 
3

eser Aşağıdaki örnek.

atlıkarınca başlatılıyor:

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

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

Ve ajax geri arama kullandığınızda, deneyin: http://jsfiddle.net/s10bgckL/959/

:

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

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

nasıl atlıkarınca yeniden başlatmak için sizi açıklamak için bir keman oluşturmak

PS: Hız, görüntülenen öğeler miktarı vb. Gibi bazı parametreleri değiştirmek istiyorsanız, bir dizi seçenek oluşturmamıştım

Umarım yardımcı olur.

+0

Bu benim için çalışır! – Nicholas

+0

Çekicilik gibi benim için çalışıyor! –

İlgili konular