Я только что установил Symfony Webpack Encore на свой проект. Все работает нормально, за исключением всех взаимодействий с новым контентом, загруженным на страницах, таких как Ajax модальный (я использую Bootstrap модальный): модалы загружаются / отображаются правильно, но мой JS не видит, что содержимое моей страницы изменилось.
Это работает следующим образом: мой модальный шаблон уже загружен на мою страницу и скрыт; когда я запрашиваю модальное отображение, он вызывает Ajax-запрос, который извлекает контент, а затем заполняет контент внутри модального шаблона и отображает его на страница
Я использовал классический рендеринг ресурсов с помощью gulp, и он работал отлично, но, поскольку я удалил gulp и использовал Webpack, когда я пытаюсь взаимодействовать с кодом, который мой модал Ajax внедрил в мой HTML, ничего не происходит.
Как будто мой JS-код не видит, что DOM был изменен, и все еще видит модальный шаблон таким, каким он был до вызова Ajax.
Я запускаю событие каждый раз, когда загружается модальное содержимое:
$modal.load(
url,
function() {
dispatchEvent('modalLoaded');
callback ? window[callback]($modal) : null
}
);
Я слушаю это событие и пытаюсь взаимодействовать с модальным:
document.addEventListener('modalLoaded', function (e) {
// I can see this event is triggered correctly
// Failed : It always get the html code prior to the Ajax call/Dom changed instead of the new one
$('#modalContainer').find('h1).html();
});
Если у кого-то есть представление об этом, это может очень помочь;)