#javascript #jquery #magnific-popup
#javascript #jquery #magnific-всплывающее окно
Вопрос:
У меня есть пользовательская кнопка закрытия во всплывающем окне с использованием magnificPopup. Кнопка закрытия работает в FireFox, но не в Chrome или Safari. В Safari я получаю следующую ошибку:
неопределенный не является объектом (вычисление ‘jQuery.magnificPopup.close’)
Это мой JS:
jQuery(document).ready(function($) {
setTimeout(function() {
if ($('#cookies-message').length) {
$.magnificPopup.open({
items: {
src: '#cookies-message'
},
type: 'inline'
});
}
}, 1000);
});
jQuery(document).on('click', '.popup-modal-dismiss', function (e) {
//e.preventDefault();
jQuery.magnificPopup.close();
});
<div id="cookies-message" class="cookie-message mfp-hide">
<img src="/wp-content/themes/site/img/cookies.svg">
<p>… but we also use them to give you the best experience on our website, which is full of other healthy solutions</p>
<p><a class="popup-modal-dismiss" href="#">OKIDOKI</a></p>
</div>
Ответ №1:
Возможно, вы загружаете magnificPopup до загрузки jQuery, и в этом случае он не будет доступен для объекта jQuery.
Вы должны иметь возможность безопасного доступа к magnificPopup с помощью $.magnificPopup
.
Ответ №2:
Попробуйте так
$.magnificPopup.close();
или
var magnificPopup = $.magnificPopup.instance; // save instance in magnificPopup variable
magnificPopup.close(); // Close popup that is currently opened
Обратитесь к этому