Инициировать сову карусели на динамически добавленном div

У меня есть БД, содержащая информацию о фильме. Теперь я хочу искать через эту базу данных нажатием кнопки. При щелчке необходимо выполнить поиск по массиву поисковых терминов и вернуть их в представление.

Все это идет по плану, но теперь я хочу отобразить их как:

Searchterm # 1
-> Карусель постеров фильма по этому поисковому запросу.

Searchterm # 2
-> Карусель постеров фильма по этому поисковому запросу.

так далее..

Все идет хорошо, я могу получить данные и отобразить их. Единственная проблема в том, что я не могу заставить работать карусель.

Вот мой JavaScript:

 function ScanForMovies()
{
    $.ajax({
        url: '@Url.Action("ScanForMovies", "Home")',
        type: 'GET',
        error: function(XMLHttpRequest, textStatus, errorThrown)
        {
            alert(errorThrown);
        },
        beforeSend: function () {
            $('#loadImage').show();
        },
        complete: function () {
            $('#loadImage').hide();
        },
        success: function (result) {
            $('#result').append('<div class="owl-carousel-v1 margin-bottom-50">');

            $.each(result, function (index, item) {
                $("#result").append('<h4 class="heading-md">' + item.Title + ' <sup>(' + item.Year + ')</sup></h4>');
                $("#result").append('<div id="' + item.Title.replace(/\s/g, '') + '" class="owl-slider">');

                $.each(item.Movies, function (ind, it) {
                    $("#" + item.Title.replace(/\s/g, '')).append('<div class="item"><img src="' + ROOT + it.Poster + '" alt="" width="120px" height="120px"/></div>');
                });

                $("#" + item.Title.replace(/\s/g, '')).append('</div>');
            });

            $('#result').append('</div>');


        },
        async: true,
        processData: false
    });
}

Вот как я начинаю совую карусель:

$(document).ready(function ($) {

    $('.owl-slider').owlCarousel({
        loop: true,
        margin: 10,
        nav: true,
        navText: ["<", ">"],
        responsive: {
            0: {
                items: 1
            },
            600: {
                items: 3
            },
            1000: {
                items: 5
            }
        }
    });
});

Как видите, я добавляю div динамически. Сова-карусель не активируется.

Если я вручную добавлю карусель с изображениями, то, между прочим, будет работать карусель сов.

У кого-нибудь есть идеи, как решить мою проблему?

Спасибо за чтение (и, надеюсь, отвечаю;))

1 ответ

Вы должны использовать функции совы, чтобы добавить свои элементы, что-то вроде:

var owl = $('.owl-slider').owlCarousel({your options});
var item = '<div class=" item...">your new div</div>';
owl.data('owlCarousel').addItem(item); 
owl.reinit(); 

Надеюсь, это поможет!

Другие вопросы по тегам