フクロウカルーセルの最初のバージョンでは、次のようにします。
var $carousel = $('#carousel');
var owl = $carousel.data('owlCarousel');
owl.reinit({touchDrag: false, mouseDrag: false;});
わかりましたが、2番目のバージョンでどのようにそれを行うか、どのように名前を変更したのかわかりません。
何らかの理由で$( '#your_carousel')。trigger( 'destroy.owl.carousel')が正しく機能していません。プラグインを再度再起動するために必要なすべてのクラスが削除されるわけではありません。
「フクロウカルーセル2」を破壊するには、それらを完全に削除する必要があります。 githubのこの問題でここで説明されているように: https://github.com/smashingboxes/OwlCarousel2/issues/46
Owl関数を破壊するには:
$('#your_carousel').trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
$('#your_carousel').find('.owl-stage-outer').children().unwrap();
これは私にとって完璧に機能しました:
// find element
$owl = $('body').find('#your_carousel');
// set the owl-carousel otions
var carousel_Settings = {
touchDrag: false,
mouseDrag: false
};
function initialize(){
var containerWidth = $('body').find('.navbar').outerWidth();
if(containerWidth <= 767) {
// initialize owl-carousel if window screensize is less the 767px
$owl.owlCarousel( carousel_Settings );
} else {
// destroy owl-carousel and remove all depending classes if window screensize is bigger then 767px
$owl.trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
$owl.find('.owl-stage-outer').children().unwrap();
}
}
// initilize after window resize
var id;
$(window).resize( function() {
clearTimeout(id);
id = setTimeout(initialize, 500);
});
// initilize onload
initialize();
destroy
でそれを行うことができますが、最新の develop
branch を使用する必要があります。
$('#carousel').owlCarousel('destroy');
$('#carousel').owlCarousel({touchDrag: false, mouseDrag: false});
または、プラグインに直接アクセスする場合:
$('#carousel').data('owl.carousel').destroy();
$('#carousel').owlCarousel({touchDrag: false, mouseDrag: false});
これは間違いなく機能します:
if (container.hasClass("owl-carousel")) {
container.owlCarousel({
touchDrag: false,
mouseDrag: false
});
container.data('owlCarousel').destroy();
container.removeClass('owl-carousel owl-loaded');
container.find('.owl-stage-outer').children().unwrap();
container.removeData();
}
プラグイン自体:
if (this.settings.responsive !== false) {
window.clearTimeout(this.resizeTimer);
$(window).off('resize.owl.carousel');
this.off(window, 'resize', this.e.onThrottledResize);
}
owl.prototype.destroy = function()で
今、あなたはそれをそのように破壊することができます:
var simple = $('#simple');
simple.owlCarousel(); // created
simple.owlCarousel('destroy'); // destroyed
よくわかりませんが、交換を試みましたか?
ここにリストされているOwlCarouselドキュメントに従って http://www.owlcarousel.owlgraphic.com/docs/api-events.html で、トリガーするイベントは "ですreplace.owl.carousel」。次のように実装できます:
var $carousel = $('#carousel');
var owl = $carousel.data('owlCarousel');
owl.trigger('replace.owl.carousel', [{touchDrag: false, mouseDrag: false;}]);
お役に立てば幸いです!
V1.3を使用する場合、次に作成します
$('#OwlWrapper').owlCarousel({option...});
$('#OwlWrapper').append('<div><img class="img-fluid" src="demo_files/images/1200x800/5-min.jpg" alt=""></div>');
$('#OwlWrapper').data('owlCarousel').reinit();
それは私のために働いています。