Задать вопрос

Как динамически подгружать код html+js и заставить его работать?

Здравствуйте, возникла следующая проблема: Есть несколько страниц, в которых содержатся динамические элементы, напр., галерея и слайдер (состоят из html и js). При подгрузки контента данных страниц на отдельную страницу через ajax (использую библиотеку axios, события подгрузки по нажатию на кнопки, кликаю на одну кнопку - подгружается 1-я страница, на 2-ю - другая) полученная страница практически корректно отображается (html и css код страницы), получаю и вывожу примерно так:
$pageBlock = document.getElementById('content');
 axios.get(this.elementUrl {
                        responseType: 'json'
                    }).then((response) => {
                            this.pageBlockContent = response.data;

$pageBlock.innerHTML = this.pageBlockContent;

Но динамические элементы, которым нужен js (напр., слайдер, галерея) - не отображаются и соответственно работать не будут.

Есть ли способ корректно отобразить все содержимое с динамикой? Нужно как-то перерисовать страницу, сказать браузеру что появился новые элементы, которым нужен js? Спасибо.
  • Вопрос задан
  • 1481 просмотр
Подписаться 3 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
При подгрузки

Ну как так то?

На успешный коллбек подгрузки страницы нужно вызвать код, который заставит нерабочее работать. Элементы, которые требуют инициализации некоторых скриптов по-другому не заставишь работать. Если бы дело касалось событий, то можно было бы применить делегирование.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Для этих целей - я создал includeHTML (для SPA и прочих интерактивных веб-приложений).
Как раз позволяет загружать (и проверять: загружено ли уже) нужные HTML-блоки и JS-скрипты (+CSS и TXT).
Все описание - на гитхабе. Непонятно - спрашивайте: отвечу.
Ответ написан
Ваш ответ на вопрос

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

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