@xDanbo

Как инициализировать слайдер bootstrap carousel при вызове через ajax?

Привет.

Страница формируется подгрузкой блоков вёрстки через ajax-вызовы. Когда блоки сразу загружены на страницу без ajax, то слайдер bootstrap carousel в этих блоках автоматически перелистывает слайды через определённые промежутки времени. Но если слайдеры вызываются через ajax, то инициализации не происходит -- надо нажать стрелочку перелистывания слайдов, и тогда до слайдера "доходит", что он есть на странице и пора самому листать слайды. Как его инициализировать при вызове?

Код вызова следующий:

(function() {
 
 function ajax(geturl, showhere) {
        var ajaxObject;
        if (window.XMLHttpRequest) {
            var d = new Date();
            ajaxObject = new XMLHttpRequest();
            ajaxObject.open("GET", geturl + '?unk=' + d, true);
            ajaxObject.send();
            ajaxObject.onreadystatechange = function() {
                if (ajaxObject.readyState == 4 && ajaxObject.status == 200) {
                    document.getElementById(showhere).innerHTML = ajaxObject.responseText;
                }
            }
        }
    }
        
    var ifScroll = false;
    
    window.onscroll = function() {
        if (!ifScroll) {
            ajax('/templates/enter/landing-pages/blocks/dizayn-proyekt.txt', 'landing-body-1');
            ajax('/templates/enter/landing-pages/blocks/nashi-dizaynery.txt', 'landing-body-2');
 
            ifScroll = true;
        }
    }
    
})();


и html:

<div id="landing-body-1"></div>
<div id="landing-body-2"></div>
  • Вопрос задан
  • 544 просмотра
Решения вопроса 1
@xDanbo Автор вопроса
Нашел решение:

var dataRide = document.querySelectorAll('[data-ride="carousel"]');
			
			for (var n = 0; n < dataRide.length; n++) {
				dataRide[n].carousel(dataRide[n].data());
			}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы