2016-07-27 5 views
0

Я пытаюсь динамически добавлять видео Совы Карусели на мой сайт, но у меня возникла проблема; Видео появится на странице, но когда я пытаюсь играть их консоль говоритOwl Carousel 2 динамически добавлять видео

TypeError: video is undefined 
    width = video.width || '100%' 

Я пытался следовать инструкциям, приведенным на Owl Carousel документации http://www.owlgraphic.com/owlcarousel/demos/manipulations.html и некоторые должности здесь, на StackOverflow, но не могу понять это. Есть немного, если таковые имеются, документации о том, как динамически добавлять видео в Owl Carousel.

Мой текущий код выглядит следующим образом:

<script> 
//init carousel 
var owl = $('.owl-carousel'); 
$(document).ready(function(){ 
    owl.owlCarousel({ 
    touchDrag: true, 
    startPosition: 1, 
    merge:true, 
    margin:10, 
    video:true, 
    center:true, 
    responsive:{ 
     320:{ 
     items:1 
     }, 
     900:{ 
     items:3 
     } 
    } 
    }); 

    var html = `<div data-merge="1" class="item-video"> 
       <div class="owl-video-wrapper"> 
        <a class="owl-video" href="https://www.youtube.com/watch?v=dOWFVKb2JqM" style="display: none;"></a> 
        <div class="owl-video-play-icon"></div> 
        <div class="owl-video-tn" style="opacity:1;background-image:url(http://img.youtube.com/vi/dOWFVKb2JqM/hqdefault.jpg)"></div> 
       </div> 
       </div>`; 
    var content = '<div class="owl-item" data-video="https://www.youtube.com/watch?v=dOWFVKb2JqM">'+html+'</div>'; 
    owl.trigger('add.owl.carousel', [$(content), 0]).trigger('refresh.owl.carousel'); 
}); 
</script> 

Я также попытался добавить их как это:

var content = `<div class="item-video" data-merge="1"><a class="owl-video" href="https://www.youtube.com/watch?v=JpxsRwnRwCQ"></a></div>`; 
owl.trigger('add.owl.carousel', [$(content), 0]).trigger('refresh.owl.carousel'); 

Моя идея заключается в дальнейшем извлечь ссылки на видео из Призрачного CMS API и начать Owl Carousel видео с этими данными. Помощь по этому высоко ценится!

ответ

0

Я получил это, используя другой подход; динамически добавлять видео в виде вложений iframe.

Это то, что я получил сейчас, и все работает. lazyYT - это jQuery-плагин для lazy-load youtube-videos. https://github.com/tylerpearson/lazyYT

var content = `<div data-merge="1" class="item-video"> <div class="lazyYT" data-youtube-id="`+parsedUrl+`" data-ratio="16:9"></div></div>` // Add video to carousel owl.trigger('add.owl.carousel', [$(content), 0]).trigger('refresh.owl.carousel').trigger('to.owl.carousel', 1);

Просто хотел, чтобы вы знаете, и, возможно, его полезно для кого-то. :)