Tengo un código que muestra una ventana emergente al pasar el mouse sobre el elemento .acfef-submit-button. Sin embargo, solo quiero que esto suceda una vez. ¿Cómo puedo ajustar este código para permitir que la ventana emergente solo aparezca una vez?
document.addEventListener('DOMContentLoaded', function() { let elements = document.querySelectorAll( '.acfef-submit-button' ); let popupposts = ['6033']; elements.forEach(function(e,i){ e.addEventListener( 'mouseenter', function(){ elementorProFrontend.modules.popup.showPopup( { id: popupposts[i] } ); } ); }); });Después de la función, agregue un objeto de opción con {once: true}
Use {once: true} para que la función se ejecute solo una vez:
document.addEventListener('DOMContentLoaded', function() { let elements = document.querySelectorAll( '.acfef-submit-button' ); let popupposts = ['6033']; elements.forEach(function(e,i){ e.addEventListener( 'mouseenter', function(){ elementorProFrontend.modules.popup.showPopup( { id: popupposts[i] } ); } ); }); }, {once: true});Es un poco complicado, pero configurar un booleano viewed funcionaría.
document.addEventListener('DOMContentLoaded', function () { let elements = document.querySelectorAll('.acfef-submit-button'); let popupposts = ['6033']; let viewed = false; // or set this in the first loop if you need to elements.forEach(function (e, i) { e.addEventListener('mouseenter', function () { if (viewed === false) { elementorProFrontend.modules.popup.showPopup({ id: popupposts[i] }); viewed = true; } }); }); });