Problem
In Elementor-Popups kommt es häufig vor, dass sich das Popup nicht schließt, wenn ein Nutzer auf einen Button oder Link mit Anker (z. B. #formular) klickt.
Typisches Szenario
- Button im Popup verlinkt auf #formular
- Seite scrollt korrekt
- Popup bleibt offen
Ursache
Elementor behandelt Anker-Links und Popup-Logik getrennt. Ein Klick auf einen Link löst kein automatisches „Popup schließen“ aus.
Lösung
Ein globaler Click-Handler sorgt dafür, dass sich das Popup bei jedem Klick auf einen Link innerhalb des Popups schließt.
Code (für WordPress / Elementor Custom Code oder HTML-Widget)
<script>
jQuery(document).ready(function($){
$(document).on('click', '.elementor-location-popup a', function(event){
elementorProFrontend.modules.popup.closePopup({}, event);
});
});
</script>
Ergebnis
Popup schließt zuverlässig bei Klick auf:
- Buttons
- Textlinks
- Anker-Links (#formular)
Funktioniert unabhängig von:
- Widget-Struktur
- dynamisch geladenem Popup-Inhalt
Hinweis
Der Code wirkt global auf alle Links im Popup. Auch Links zu externen Seiten oder rechtlichen Seiten (Impressum, Datenschutz) schließen das Popup. Wenn das nicht gewünscht ist, kann der Selektor eingeschränkt werden, z. B. auf bestimmte Klassen oder Anker-Ziele.
Diese Lösung umgeht typische Konflikte zwischen:
- Elementor Popup-System
- Anker-Navigation
- dynamischem DOM-Laden
und ist in der Praxis die stabilste Variante.