Как закрыть попап в Elementor при клике на ссылку

В Elementor закрытие всплывающего окна (попапа) реализовано по умолчанию через крестик или кнопку с действием «Закрыть попап». Однако,…


Практическое руководство

В Elementor закрытие всплывающего окна (попапа) реализовано по умолчанию через крестик или кнопку с действием «Закрыть попап». Однако, если в модальном окне Elementor размещена якорная ссылка на ту же страницу, например #contact, попап не закрывается — он лишь прокручивает страницу до нужного блока.

В этом материале мы рассмотрим 3 проверенных способа, как закрыть попап в Elementor при нажатии на ссылку. Все методы легко реализуются без плагинов — с помощью HTML и JavaScript.


🔧 Проблема: якорная ссылка не закрывает попап

Если вы используете ссылку вида:

<a href="#contact">Связаться с нами</a>

внутри попапа, то при клике Elementor только скроллит страницу, но не закрывает модальное окно. Это может негативно сказаться на UX, особенно на мобильных устройствах.

Решение — добавить в разметку модального окна HTML-блок со скриптом, который отслеживает клик по ссылке и закрывает попап вручную.


🛠️ Способ 1: Закрытие попапа при клике на любую ссылку

Если вы хотите, чтобы при клике на любую ссылку внутри модального окна происходило его закрытие, используйте следующий код:

Добавление HTML-элемента в попап:

image
Нужный виджет HTML
  1. В редакторе Elementor откройте настройки нужного попапа.
  2. Добавьте элемент “HTML”.
  3. Вставьте скрипт:
<script>
jQuery(function($){
$(document).on('click','.elementor-location-popup a', function(event){
elementorProFrontend.modules.popup.closePopup({}, event);
});
});
</script>
image
Пример как должно выглядеть.

Теперь при клике на любую ссылку внутри попапа произойдёт его закрытие. Одновременно будет выполнен скролл по якорю, если href содержит #.


🎯 Способ 2: Закрытие по классу ссылки

Иногда необходимо, чтобы попап закрывался только при клике по определённым ссылкам, а не по всем. Для этого задайте ссылке уникальный класс, например link-by-id, и модифицируйте скрипт:

<script>
jQuery(function($){
$(document).on('click','.elementor-location-popup .link-by-id', function(event){
elementorProFrontend.modules.popup.closePopup({}, event);
});
});
</script>

Пример ссылки:

<a href="#contact" class="link-by-id">Написать нам</a>

Этот подход особенно удобен, если внутри попапа размещено несколько ссылок, но закрытие требуется только по определённой из них.


🧠 Способ 3: Условное закрытие при наличии якоря

Третий вариант позволяет закрыть модальное окно только в случае, если ссылка содержит символ #, то есть указывает на блок на текущей странице.

Скрипт с условием:

<script>
jQuery(function($){
$(document).on('click','.elementor-location-popup a', function(event){
if ($(this).attr('href').indexOf('#') !== -1) {
elementorProFrontend.modules.popup.closePopup({}, event);
}
});
});
</script>

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


📋 Сравнение способов

МетодУсловие закрытияНастройка
Способ 1 — все ссылкиЛюбая ссылка внутри попапаОдин скрипт без классов
Способ 2 — по классуСсылки с заданным классомНужно добавить класс
Способ 3 — по наличию якоряТолько если в href есть #Гибкий, но общий подход

✅ Вывод

Проблема, когда Elementor не закрывает попап при скролле по якорной ссылке, решается добавлением короткого скрипта в HTML-блок модального окна. Вы можете выбрать любой из предложенных способов в зависимости от конкретной задачи:

  • Хотите закрывать попап по всем ссылкам — используйте Способ 1.
  • Нужно контролировать поведение — выбирайте Способ 2 или 3.

Ключевой момент — не забыть разместить скрипт в HTML-элементе внутри самого попапа, иначе он работать не будет.


💡 Полезные советы

  • Убедитесь, что у вас установлен Elementor Pro, иначе модуль popup может быть недоступен.
  • Если вы используете lazy load, убедитесь, что скрипт загружается при открытии попапа.
  • Не добавляйте скрипт на каждую страницу — достаточно одного экземпляра в попапе.

Почему стоит выбрать меня

Индивидуальный подход

Каждый проект для меня уникален. Я не использую шаблонные решения, а создаю дизайны, которые отражают вашу индивидуальность

Внимание к деталям

Каждый элемент дизайна продуман до мелочей, чтобы ваш сайт был не только красивым, но и удобным

Соблюдение сроков

Я понимаю, как важно время для вашего бизнеса, поэтому всегда соблюдаю дедлайны

Полный цикл услуг

Технические задачи выполняю лично. По согласованию подключаю партнёров — дизайнеров и SEO-специалиста. Оцениваю объём и сроки до начала работ, остаюсь вашим основным контактным лицом.

Опыт работы с WordPress

Основную техническую работу выполняю лично: разрабатываю и дорабатываю WordPress, Elementor и WooCommerce. При необходимости подключаю партнёров по дизайну и SEO. До начала работы согласую объём, стоимость и сроки.

Прозрачность и честность

Я работаю открыто и честно. Вы всегда будете в курсе этапов работы и сможете вносить правки на любом этапе

Работаю лично, подключаю партнёров

Меня зовут Александр Ермоленко. Основную техническую работу выполняю самостоятельно. Если проекту нужны дизайн или SEO, подключаю профильных партнёров. Вы общаетесь напрямую со мной — от оценки задачи до передачи результата и поддержки.

Подробнее обо мне →

Обсудить проект

картинка

Отвечу на ваши вопросы

  • Сроки и стоимость выполнения работ;
  • Что влияет на стоимость;
  • Как проходит каждый этап;
  • Возможно ли разбить оплату на части;
  • На каких платформах разрабатываются сайты;
  • Возможны ли доработки после запуска

Выберите удобный способ для связи: