2013-05-17 7 views
7

Недавно я реализовал «Magnific Popup», и всплывающее окно появилось нормально, однако при нажатии окна ввода всплывающее окно исчезает на родительской странице. В примерах, отображаемых на веб-сайте плагина, все диалоговое окно можно щелкнуть, пока вы не выйдете за пределы этого поля.Magnific Popup - всплывающее окно, исчезающее при нажатии

Я надеюсь, что его просто что-то очень простое, что я пропустил, но она по-прежнему делает мою голову.

Я очень признателен за любую помощь, которую я могу получить!

Спасибо :)

+1

Да, ты пропустили что-то чрезвычайно простое, пожалуйста, напишите какой-нибудь код! Никто не может ответить на ваш вопрос, не видя, что вы пробовали. –

+0

Привет @ KenY-N, CMS - это веб-сайт, поэтому его буквально просто часть PHP, которая ссылается на страницу WYSIWYG. Я читал на https://github.com/dimsemenov/Magnific-Popup/pull/39, что вам нужно «зацикливать узлы», но я не знаю, как это сделать. – Frank

ответ

9

Если вы используете «Аякс» тип контента, вам необходимо убедиться, что у вас есть только один корневой узел.

http://dimsemenov.com/plugins/magnific-popup/documentation.html#ajax_type

Е.Г., это правильно содержимое АЯКС файла:

<div> 
    html content 
    <script src="something.js"></script> 
</div> 

Некорректное:

<script src="something.js"></script> 
<div> 
    html content 
</div> 

Некорректное:

<div> 
    html content 
</div> 
<div>Another content</div> 

Кроме того, убедитесь т шляпа closeOnContentClick установлен на falsehttp://dimsemenov.com/plugins/magnific-popup/documentation.html#closeoncontentclick

Если по какой-то причине, вы не можете изменить содержимое файла АЯКС, вы можете анализировать содержание в parseAjax обратного вызова, как описано here (так mfpResponse.data содержит только один корневой узел).

+1

Спасибо, вот и все! (на самом деле это была ссылка

1

Я еще не могу ответить (слишком низкая репутация), поэтому добавьте его вот так: кажется, что это также относится к типу: 'inline'. Безопасно всегда обматывать содержимое с помощью div.

$.magnificPopup.open({ 
    items: { 
    src: '<div>'+ html +'</div>' 
    }, 
    type: 'inline', 
    closeOnContentClick: false 
}, 0); 
1

У меня была такая же ошибка. Оказалось, что это тупая ошибка с моей стороны, у меня был тот же класс на моем открывателе и мой встроенный div.

<a href="#popup" class="dialog">Open</a> 
<div id="popup" class="dialog mfp-hide"></div> 

Конечно, они должны были быть разные классы так:

<a href="#popup" class="dialog">Open</a> 
<div id="popup" class="dialog-box mfp-hide"></div> 
+0

такой же здесь! большое спасибо! :) –

0

Добавить modal:true в magnificPopup:

$('.your_class').magnificPopup({ 
    type: 'ajax', 
    modal:true 
});